diff --git a/VistaCoreLibs/VistaInterProcComm/Concurrency/Imp/VistaPosixThreadEventImp.cpp b/VistaCoreLibs/VistaInterProcComm/Concurrency/Imp/VistaPosixThreadEventImp.cpp
index e1221b3410f242b734128e53085325b7350313be..328177a194ef9d136a174bf2d0c4eacdcafb7691 100644
--- a/VistaCoreLibs/VistaInterProcComm/Concurrency/Imp/VistaPosixThreadEventImp.cpp
+++ b/VistaCoreLibs/VistaInterProcComm/Concurrency/Imp/VistaPosixThreadEventImp.cpp
@@ -32,6 +32,7 @@
 
 #if defined (LINUX) || defined (DARWIN)
 	#include <sys/ioctl.h>
+	#include <sys/time.h>
 #elif defined(SUNOS) || defined(IRIX)
 	#include <sys/types.h>
 	#include <sys/filio.h>
@@ -84,7 +85,7 @@ void VistaPosixThreadEventImp::SignalEvent()
 	VistaPosixThreadEventImp* pThis = this;
    
 	int n = 0;
-	if(0 <= ioctl(m_fd[PIPE_W],FIONREAD,(char*)&n) && n==0)
+	if(0 <= ioctl(m_fd[PIPE_W],FIONREAD, reinterpret_cast<char*>(&n)) && n==0)
 		TEMP_FAILURE_RETRY( write(m_fd[PIPE_W], &pThis, sizeof(this)) );
 }