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__
