diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5d2737fa5368ef9657d95f097f9468b42d8aeed8..a645c9b5d13153242bb4c250af233a6f92b191db 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,9 @@
 cmake_minimum_required (VERSION 2.4)
 
+if(COMMAND cmake_policy)
+      cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
 project (pkcs11 C)
 
 set(PKCS11_PROXY_SRCS gck-rpc-module.c gck-rpc-message.c gck-rpc-util.c egg-buffer.c)
diff --git a/gck-rpc-module.c b/gck-rpc-module.c
index add803e749c70b64f281c5e66b6c53eb7a686d20..c06c129eec04b7a4151392dda455d0b0a8669187 100644
--- a/gck-rpc-module.c
+++ b/gck-rpc-module.c
@@ -251,7 +251,7 @@ static CK_RV call_write(CallState * cs, unsigned char *data, size_t len)
 			return CKR_DEVICE_ERROR;
 		}
 
-		r = send(fd, data, len, 0);
+                r = send(fd, (void *)data, len, 0);
 
 		if (r == -1) {
 			if (errno == EPIPE) {
@@ -290,7 +290,7 @@ static CK_RV call_read(CallState * cs, unsigned char *data, size_t len)
 			return CKR_DEVICE_ERROR;
 		}
 
-		r = recv(fd, data, len, 0);
+                r = recv(fd, (void *)data, len, 0);
 
 		if (r == 0) {
 			warning(("couldn't receive data: daemon closed connection"));