diff --git a/src/cl/pyopencl-complex.h b/src/cl/pyopencl-complex.h
index 2709ea422506d1100aeaa2f85e0c9010700ffaa1..e49e16be45061653f25613da67dcfb7d02949e8b 100644
--- a/src/cl/pyopencl-complex.h
+++ b/src/cl/pyopencl-complex.h
@@ -217,9 +217,9 @@
   PYOPENCL_DECLARE_COMPLEX_TYPE_INT(BASE, BASE_3LTR, c##BASE, c##BASE##_t)
 
 PYOPENCL_DECLARE_COMPLEX_TYPE(float, FLT);
-#define cfloat_cast(a) ((cfloat_t) ((a).x, (a).y))
+#define cfloat_cast(a) ((cfloat_t) ((float) (a).x, (float) (a).y))
 
 #ifdef PYOPENCL_DEFINE_CDOUBLE
 PYOPENCL_DECLARE_COMPLEX_TYPE(double, DBL);
-#define cdouble_cast(a) ((cdouble_t) ((a).x, (a).y))
+#define cdouble_cast(a) ((cdouble_t) ((double) (a).x, (double) (a).y))
 #endif