diff --git a/gck-rpc-dispatch.c b/gck-rpc-dispatch.c
index 4f31e95981a9e18b8121f3ef644908371637e246..f1b479800f93d74e916357e06c5271587f614155 100644
--- a/gck-rpc-dispatch.c
+++ b/gck-rpc-dispatch.c
@@ -2077,7 +2077,7 @@ static int write_all(int sock, unsigned char *data, size_t len)
 
 	while (len > 0) {
 
-                r = send(sock, (void *)data, len, 0);
+                r = send(sock, (void *)data, len, MSG_NOSIGNAL);
 
 		if (r == -1) {
 			if (errno == EPIPE) {