diff -ru src/src/C/cvxopt.h b/src/C/cvxopt.h
--- src/src/C/cvxopt.h 2013-04-22 08:44:28.000000000 +0200
+++ b/src/C/cvxopt.h 2013-05-14 17:00:12.402407091 +0200
@@ -28,8 +28,16 @@
/* ANSI99 complex is disabled during build of CHOLMOD */
#ifndef NO_ANSI99_COMPLEX
-#include "complex.h"
+#include <complex.h>
#define MAT_BUFZ(O) ((double complex *)((matrix *)O)->buffer)
+
+/* The <complex.h> header of Solaris 10 defines I in a way that GCC
+ * doesn't understand. Redefine I like in glibc. */
+#if defined(__sun__) && defined(__GNUC__)
+ #undef I
+ #define I (__extension__ 1.0iF)
+#endif
+
#endif
#ifndef __CVXOPT__