Index: src/Makefile
--- src/Makefile.orig	2010-03-21 12:16:13.000000000 +0100
+++ src/Makefile	2010-04-01 20:22:16.000000000 +0200
@@ -302,7 +302,7 @@
 SUBIN = subin
 #endif #############
 #ifdef UNIX,OS2EMX ################################################
-CFLAGSPLUS =	if(WITHCPLUS,UNIX,OS2EMX) -x c++ -DQS
+CFLAGSPLUS =	if(WITHCPLUS,UNIX,OS2EMX)
 DGEXE =		./dg.exe
 COPY =		cp -f -p
 CFLAGS =	if(UNIX,OS2EMX) -O2
Index: src/X.c
--- src/X.c.orig	2010-03-29 07:06:30.000000000 +0200
+++ src/X.c	2010-04-01 20:25:14.000000000 +0200
@@ -50,6 +50,12 @@
 #include "mysgTTy.h"
 #include "service.h"
 
+/* #undef CS unconditionally
+ * real problem exists under Solaris (10) that defines CS in
+ * /usr/include/sys/ucontext.h which is included together with stdlib.h
+ */
+#undef CS
+
 #if defined(fcloseFILE) /*{*/
 
 /* WinCE */
Index: src/dget.c
--- src/dget.c.orig	2010-03-29 02:13:30.000000000 +0200
+++ src/dget.c	2010-04-01 20:22:16.000000000 +0200
@@ -39,6 +39,12 @@
 const char *DELEGATE_getEnv(PCStr(name));
 char *fgetsTIMEOUT(xPVStr(b),int s,FILE *fp);
 
+/* #undef ERR unconditionally
+ * real problem exists under Solaris (10) that defines ERR in
+ * /usr/include/sys/regset.h which is included together with stdlib.h
+ */
+#undef ERR
+
 const char *strid_find(int tab,int hx,int id);
 int connect2server(Connection *Conn,PCStr(proto),PCStr(host),int port);
 FileSize CTX_file_copy(Connection *Conn,FILE *src,FILE *dst,FILE *cache,FileSize bytes,int *binary);
Index: src/smtpgate.c
--- src/smtpgate.c.orig	2010-01-30 08:06:41.000000000 +0100
+++ src/smtpgate.c	2010-04-01 20:22:16.000000000 +0200
@@ -53,6 +53,12 @@
 #include "file.h"
 #include "auth.h"
 
+/* #undef FS unconditionally 
+ * real problem exists under Solaris (10) that defines FS in
+ * /usr/include/sys/ucontext.h which is included together with stdlib.h
+ */
+#undef FS
+
 #define LNSIZE  1024
 #define lfprintf	SMTP_lfprintf
 void SMTP_lfprintf(FILE *log,FILE *tosc,PCStr(fmt),...);
Index: src/telnet.c
--- src/telnet.c.orig	2010-02-27 11:48:27.000000000 +0100
+++ src/telnet.c	2010-04-01 20:22:16.000000000 +0200
@@ -29,6 +29,12 @@
 #include "auth.h"
 #include "proc.h"
 
+/* #undef CS unconditionally
+ * real problem exists under Solaris (10) that defines CS in
+ * /usr/include/sys/ucontext.h which is included together with stdlib.h
+ */
+#undef CS
+
 extern int IO_TIMEOUT;
 
 int connectToSsh(Connection *Conn,const char *host,int port,PCStr(user),PCStr(pass));
Index: src/textconv.c
--- src/textconv.c.orig	2009-09-14 00:57:19.000000000 +0200
+++ src/textconv.c	2010-04-01 20:22:16.000000000 +0200
@@ -714,7 +714,7 @@
 
 int *ccx_global;
 
-void setCCX(Connection *Conn,PVStr(code),PVStr(stat))
+static void local_setCCX(Connection *Conn,PVStr(code),PVStr(stat))
 {	const char *st;
 	int thru = 0;
 
@@ -750,7 +750,7 @@
 }
 void global_setCCX(Connection *Conn,PVStr(code),PVStr(stat))
 {
-	setCCX(Conn,AVStr(code),AVStr(stat));
+	local_setCCX(Conn,AVStr(code),AVStr(stat));
 	ccx_global = (int*)CCX0;
 }
 
Index: src/urlfind.c
--- src/urlfind.c.orig	2009-08-16 08:25:44.000000000 +0200
+++ src/urlfind.c	2010-04-01 20:22:16.000000000 +0200
@@ -25,6 +25,12 @@
 #include "ystring.h"
 #include "dglib.h"
 
+/* #undef ERR unconditionally
+ * real problem exists under Solaris (10) that defines ERR in
+ * /usr/include/sys/regset.h which is included together with stdlib.h
+ */
+#undef ERR
+
 static const char *usage = "\
 Usage: urlfind URL\n\
     -- Find recursively in URL space.\n\
Index: teleport/vehicle.c
--- teleport/vehicle.c.orig	2010-01-30 07:31:42.000000000 +0100
+++ teleport/vehicle.c	2010-04-01 20:22:16.000000000 +0200
@@ -22,6 +22,12 @@
 #include <stdio.h>
 #include "teleport.h"
 
+/* #undef ERR unconditionally
+ * real problem exists under Solaris (10) that defines ERR in
+ * /usr/include/sys/regset.h which is included together with stdlib.h
+ */
+#undef ERR
+
 #define TP_INVITE	"INVITE"
 #define TP_ROUTE	"ROUTE"
 #define IMSIZE	(1024*8)
