diff --git a/src/integration.c b/src/integration.c
index 4b1492c..8896275 100644
--- a/src/integration.c
+++ b/src/integration.c
@@ -86,6 +86,7 @@
 static void process_toolbarButton(char *);
 static void workshop_set_option_first(char *name, char *value);
 
+static size_t dummy;  /* to ignore return value of write() */
 
 #define CMDBUFSIZ	2048
 
@@ -183,7 +184,7 @@
 			ackNum = atoi(&cmd[4]);
 			vim_snprintf(buf, sizeof(buf),
 					       NOCATGETS("ack %d\n"), ackNum);
-			(void)write(sd, buf, strlen(buf));
+			dummy = write(sd, buf, strlen(buf));
 		} else if (strncmp(cmd,
 		    NOCATGETS("addMarkType "), 12) == 0) {
 			int idx;
@@ -280,7 +281,7 @@
 			vim_snprintf(buf, sizeof(buf),
 					     NOCATGETS("markLine %s %d %d\n"),
 			    file, markid, line);
-			(void)write(sd, buf, strlen(buf));
+			dummy = write(sd, buf, strlen(buf));
 		} else if (cmd[1] == 'o' && cmd[4] == 'L' &&
 		    strncmp(cmd, NOCATGETS("gotoLine "), 9) == 0) {
 			char *file;
@@ -729,10 +730,10 @@
 		workshop_get_editor_name(),
 		PROTOCOL_VERSION,
 		workshop_get_editor_version());
-	(void)write(sd, buf, strlen(buf));
+	dummy = write(sd, buf, strlen(buf));
 
 	vim_snprintf(buf, sizeof(buf), NOCATGETS("ack 1\n"));
-	(void)write(sd, buf, strlen(buf));
+	dummy = write(sd, buf, strlen(buf));
 }
 
 void	workshop_disconnect()
@@ -1059,7 +1060,7 @@
 	char buffer[2*MAXPATHLEN];
 	vim_snprintf(buffer, sizeof(buffer),
 			NOCATGETS("deletedFile %s\n"), filename);
-	(void)write(sd, buffer, strlen(buffer));
+	dummy = write(sd, buffer, strlen(buffer));
 }
 #endif
 
@@ -1068,7 +1069,7 @@
 	char buffer[2*MAXPATHLEN];
 	vim_snprintf(buffer, sizeof(buffer),
 			NOCATGETS("deletedFile %s %d\n"), filename, lineno);
-	(void)write(sd, buffer, strlen(buffer));
+	dummy = write(sd, buffer, strlen(buffer));
 }
 
 void workshop_file_opened(char *filename, int readOnly)
@@ -1076,7 +1077,7 @@
 	char buffer[2*MAXPATHLEN];
 	vim_snprintf(buffer, sizeof(buffer),
 			NOCATGETS("loadedFile %s %d\n"), filename, readOnly);
-	(void)write(sd, buffer, strlen(buffer));
+	dummy = write(sd, buffer, strlen(buffer));
 }
 
 
@@ -1085,7 +1086,7 @@
 	char buffer[2*MAXPATHLEN];
 	vim_snprintf(buffer, sizeof(buffer),
 			NOCATGETS("savedFile %s\n"), filename);
-	(void)write(sd, buffer, strlen(buffer));
+	dummy = write(sd, buffer, strlen(buffer));
 
 	/* Let editor report any moved marks that the eserve client
 	 * should deal with (for example, moving location-based breakpoints) */
@@ -1098,7 +1099,7 @@
 	char buffer[2*MAXPATHLEN];
 	vim_snprintf(buffer, sizeof(buffer),
 			NOCATGETS("modifiedFile %s\n"), filename);
-	(void)write(sd, buffer, strlen(buffer));
+	dummy = write(sd, buffer, strlen(buffer));
 }
 
 void workshop_move_mark(char *filename, int markId, int newLineno)
@@ -1106,7 +1107,7 @@
 	char buffer[2*MAXPATHLEN];
 	vim_snprintf(buffer, sizeof(buffer),
 	       NOCATGETS("moveMark %s %d %d\n"), filename, markId, newLineno);
-	(void)write(sd, buffer, strlen(buffer));
+	dummy = write(sd, buffer, strlen(buffer));
 }
 #endif
 
@@ -1119,7 +1120,7 @@
 		vim_snprintf(buffer, sizeof(buffer),
 				NOCATGETS("frameAt %d %d %d %d\n"),
 				new_x, new_y, new_w, new_h);
-		(void)write(sd, buffer, strlen(buffer));
+		dummy = write(sd, buffer, strlen(buffer));
 	}
 }
 
@@ -1179,7 +1180,7 @@
 			selEndLine, selEndCol,
 			selLength,
 			selection);
-		(void)write(sd, buf, strlen(buf));
+		dummy = write(sd, buf, strlen(buf));
 		if (*selection) {
 			free(selection);
 		}
@@ -1190,7 +1191,7 @@
 #if defined(NOHANDS_SUPPORT_FUNCTIONS) || defined(FEAT_BEVAL)
 void workshop_send_message(char *buf)
 {
-	(void)write(sd, buf, strlen(buf));
+	dummy = write(sd, buf, strlen(buf));
 }
 #endif
 
