diff --git a/Examples/test-suite/complextest.i b/Examples/test-suite/complextest.i
index 592512b..622b380 100644
--- a/Examples/test-suite/complextest.i
+++ b/Examples/test-suite/complextest.i
@@ -68,20 +68,57 @@
 
 
 %{
+#include <complex.h>
 %}
 
 %inline
 {
-  complex Conj(complex a)
+  complex double Conj(complex double a)
   {
     return conj(a);
   }
 
 
-  complex float Conjf(float complex a)
+  complex float Conjf(complex float a)
+  {
+    return conjf(a);
+  }
+
+
+  double complex Conj1(double complex a)
   {
     return conj(a);
   }
+
+
+  float complex Conjf1(float complex a)
+  {
+    return conjf(a);
+  }
+
+
+  _Complex double Conj2(_Complex double a)
+  {
+    return conj(a);
+  }
+
+
+  _Complex float Conjf2(_Complex float a)
+  {
+    return conjf(a);
+  }
+
+
+  double _Complex Conj3(double _Complex a)
+  {
+    return conj(a);
+  }
+
+
+  float _Complex Conjf3(float _Complex a)
+  {
+    return conjf(a);
+  }
 }
 
 
diff --git a/Examples/test-suite/python/Makefile.in b/Examples/test-suite/python/Makefile.in
index 0570954..7ca98b3 100644
--- a/Examples/test-suite/python/Makefile.in
+++ b/Examples/test-suite/python/Makefile.in
@@ -83,6 +83,7 @@
 	cpp11_std_unordered_set \
 
 C_TEST_CASES += \
+	complextest \
 	file_test \
 	li_cstring \
 	li_cwstring \
diff --git a/Examples/test-suite/python/complextest_runme.py b/Examples/test-suite/python/complextest_runme.py
index 4257cb3..4e7d08f 100644
--- a/Examples/test-suite/python/complextest_runme.py
+++ b/Examples/test-suite/python/complextest_runme.py
@@ -14,17 +14,34 @@
 if complextest.Conjf2(a) != a.conjugate():
     raise RuntimeError("bad complex mapping")
 
+if 'Conj3' in dir(complextest):
+    if complextest.Conj3(a) != a.conjugate():
+        raise RuntimeError("bad complex mapping")
 
-v = (complex(1, 2), complex(2, 3), complex(4, 3), 1)
+if 'Conjf3' in dir(complextest):
+    if complextest.Conjf3(a) != a.conjugate():
+        raise RuntimeError("bad complex mapping")
 
-if len(complextest.CopyHalf(v)) != 2:
-    raise RuntimeError("CopyHalf failed")
+if 'Conj4' in dir(complextest):
+    if complextest.Conj4(a) != a.conjugate():
+        raise RuntimeError("bad complex mapping")
 
-if len(complextest.CopyHalfRef(v)) != 2:
-    raise RuntimeError("CopyHalfRef failed")
+if 'Conj5' in dir(complextest):
+    if complextest.Conj5(a) != a.conjugate():
+        raise RuntimeError("bad complex mapping")
 
-p = complextest.ComplexPair()
-p.z1 = complex(0, 1)
-p.z2 = complex(0, -1)
-if complextest.Conj(p.z2) != p.z1:
-    raise RuntimeError("bad complex mapping")
+if 'CopyHalf' in dir(complextest):
+
+    v = (complex(1, 2), complex(2, 3), complex(4, 3), 1)
+
+    if len(complextest.CopyHalf(v)) != 2:
+        raise RuntimeError("CopyHalf failed")
+
+    if len(complextest.CopyHalfRef(v)) != 2:
+        raise RuntimeError("CopyHalfRef failed")
+
+    p = complextest.ComplexPair()
+    p.z1 = complex(0, 1)
+    p.z2 = complex(0, -1)
+    if complextest.Conj(p.z2) != p.z1:
+        raise RuntimeError("bad complex mapping")
diff --git a/Lib/javascript/jsc/ccomplex.i b/Lib/javascript/jsc/ccomplex.i
index 50f0f95..e58dbf7 100644
--- a/Lib/javascript/jsc/ccomplex.i
+++ b/Lib/javascript/jsc/ccomplex.i
@@ -12,15 +12,16 @@
 #include <complex.h>
 %}
 
+#define complex _Complex
 
 /* C complex constructor */
 #define CCplxConst(r, i) ((r) + I*(i))
 
-%swig_cplxflt_convn(float complex, CCplxConst, creal, cimag);
-%swig_cplxdbl_convn(double complex, CCplxConst, creal, cimag);
-%swig_cplxdbl_convn(complex, CCplxConst, creal, cimag);
+%swig_cplxflt_convn(float _Complex, CCplxConst, creal, cimag);
+%swig_cplxdbl_convn(double _Complex, CCplxConst, creal, cimag);
+%swig_cplxdbl_convn(_Complex, CCplxConst, creal, cimag);
 
 /* declaring the typemaps */
-%typemaps_primitive(SWIG_TYPECHECK_CPLXFLT, float complex);
-%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, double complex);
-%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXFLT, float _Complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, double _Complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, _Complex);
diff --git a/Lib/javascript/v8/ccomplex.i b/Lib/javascript/v8/ccomplex.i
index 8eda920..b4b925d 100644
--- a/Lib/javascript/v8/ccomplex.i
+++ b/Lib/javascript/v8/ccomplex.i
@@ -12,15 +12,16 @@
 #include <complex.h>
 %}
 
+#define complex _Complex
 
 /* C complex constructor */
 #define CCplxConst(r, i) ((r) + I*(i))
 
-%swig_cplxflt_convn(float complex, CCplxConst, creal, cimag);
-%swig_cplxdbl_convn(double complex, CCplxConst, creal, cimag);
-%swig_cplxdbl_convn(complex, CCplxConst, creal, cimag);
+%swig_cplxflt_convn(float _Complex, CCplxConst, creal, cimag);
+%swig_cplxdbl_convn(double _Complex, CCplxConst, creal, cimag);
+%swig_cplxdbl_convn(_Complex, CCplxConst, creal, cimag);
 
 /* declaring the typemaps */
-%typemaps_primitive(SWIG_TYPECHECK_CPLXFLT, float complex);
-%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, double complex);
-%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXFLT, float _Complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, double _Complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, _Complex);
diff --git a/Lib/python/ccomplex.i b/Lib/python/ccomplex.i
index 28872b9..b99f96a 100644
--- a/Lib/python/ccomplex.i
+++ b/Lib/python/ccomplex.i
@@ -12,15 +12,16 @@
 #include <complex.h>
 %}
 
+#define complex _Complex
 
 /* C complex constructor */
 #define CCplxConst(r, i) ((r) + I*(i))
 
-%swig_cplxflt_convn(float complex, CCplxConst, creal, cimag);
-%swig_cplxdbl_convn(double complex, CCplxConst, creal, cimag);
-%swig_cplxdbl_convn(complex, CCplxConst, creal, cimag);
+%swig_cplxflt_convn(float _Complex, CCplxConst, creal, cimag);
+%swig_cplxdbl_convn(double _Complex, CCplxConst, creal, cimag);
+%swig_cplxdbl_convn(_Complex, CCplxConst, creal, cimag);
 
 /* declaring the typemaps */
-%typemaps_primitive(SWIG_TYPECHECK_CPLXFLT, float complex);
-%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, double complex);
-%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXFLT, float _Complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, double _Complex);
+%typemaps_primitive(SWIG_TYPECHECK_CPLXDBL, _Complex);
diff --git a/Source/CParse/cscanner.c b/Source/CParse/cscanner.c
index 19a0138..a370270 100644
--- a/Source/CParse/cscanner.c
+++ b/Source/CParse/cscanner.c
@@ -908,7 +908,7 @@
 	if (strcmp(yytext, "class") == 0) {
 	  Swig_warning(WARN_PARSE_CLASS_KEYWORD, cparse_file, cparse_line, "class keyword used, but not in C++ mode.\n");
 	}
-	if (strcmp(yytext, "complex") == 0) {
+	if (strcmp(yytext, "_Complex") == 0) {
 	  yylval.type = NewSwigType(T_COMPLEX);
 	  return (TYPE_COMPLEX);
 	}
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index 8029dee..c48d3a6 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -6232,19 +6232,19 @@
 			} else if (Cmp($1.type,"double") == 0) {
 			  if (Cmp($2.type,"long") == 0) {
 			    $$.type = NewString("long double");
-			  } else if (Cmp($2.type,"complex") == 0) {
-			    $$.type = NewString("double complex");
+			  } else if (Cmp($2.type,"_Complex") == 0) {
+			    $$.type = NewString("double _Complex");
 			  } else {
 			    err = 1;
 			  }
 			} else if (Cmp($1.type,"float") == 0) {
-			  if (Cmp($2.type,"complex") == 0) {
-			    $$.type = NewString("float complex");
+			  if (Cmp($2.type,"_Complex") == 0) {
+			    $$.type = NewString("float _Complex");
 			  } else {
 			    err = 1;
 			  }
-			} else if (Cmp($1.type,"complex") == 0) {
-			  $$.type = NewStringf("%s complex", $2.type);
+			} else if (Cmp($1.type,"_Complex") == 0) {
+			  $$.type = NewStringf("%s _Complex", $2.type);
 			} else {
 			  err = 1;
 			}
@@ -6294,7 +6294,7 @@
                     $$.type = 0;
                 }
                | TYPE_COMPLEX { 
-                    $$.type = NewString("complex");
+                    $$.type = NewString("_Complex");
                     $$.us = 0;
                 }
                | TYPE_NON_ISO_INT8 { 
diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c
index 7564db1..d6d6bcc 100644
--- a/Source/Swig/typesys.c
+++ b/Source/Swig/typesys.c
@@ -1453,11 +1453,11 @@
     return T_DOUBLE;
   if (strcmp(c, "long double") == 0)
     return T_LONGDOUBLE;
-  if (!cparse_cplusplus && (strcmp(c, "float complex") == 0))
+  if (!cparse_cplusplus && (strcmp(c, "float _Complex") == 0))
     return T_FLTCPLX;
-  if (!cparse_cplusplus && (strcmp(c, "double complex") == 0))
+  if (!cparse_cplusplus && (strcmp(c, "double _Complex") == 0))
     return T_DBLCPLX;
-  if (!cparse_cplusplus && (strcmp(c, "complex") == 0))
+  if (!cparse_cplusplus && (strcmp(c, "_Complex") == 0))
     return T_COMPLEX;
   if (strcmp(c, "void") == 0)
     return T_VOID;
