diff --git a/src/build/Common.gmake b/src/build/Common.gmake
index ff7d190829d01a59142ed5b9741f5085c9aaa4ba..2c7d305619783b3ec804bfa36c0b0555d6e71907 100644
--- a/src/build/Common.gmake
+++ b/src/build/Common.gmake
@@ -269,6 +269,8 @@ else
       XP_SEM :=    1
       MT_CFLAGS    +=    -D_POSIX_PTHREAD_SEMANTICS
       MT_CFLAGS    += -DUSE_XP_SEMAPHORES
+      # This makes ctime_r() be the correct one.
+      CFLAGS	   += -D_POSIX_PTHREAD_SEMANTICS
      else            # Linux / Other UNIX
       XP_SEM :=    1
       MT_CFLAGS    += -DUSE_XP_SEMAPHORES
diff --git a/src/xpdev/genwrap.h b/src/xpdev/genwrap.h
index c81475b318f356caec4b0ea3480f1246d36b0b72..1a132c7b50e70ad8e8dfd12d53934457be69d042 100644
--- a/src/xpdev/genwrap.h
+++ b/src/xpdev/genwrap.h
@@ -277,13 +277,7 @@ DLLEXPORT int DLLCALL	get_errno(void);
 #endif
 
 #if defined(__solaris__)
-	/*
-	 * Solaris actually does have TWO ctime_r() implementations.
-	 * there is proboble a CORRECT way of selecting one, but I don't
-	 * have time to look it up right now.
-	 * This is therefore, a Kludge.  ToDo 
-	 */
-	#define CTIME_R(x,y)	__posix_ctime_r(x,y)
+	#define CTIME_R(x,y)	ctime_r(x,y)
 	/* #define CTIME_R(x,y)	ctime_r(x,y,sizeof y) */
 #else
 	#define CTIME_R(x,y)	ctime_r(x,y)