diff --git a/wrapper.c b/wrapper.c
index bac59d2..474d760 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -187,7 +187,12 @@ ssize_t write_in_full(int fd, const void *buf, size_t count)
 	ssize_t total = 0;
 
 	while (count > 0) {
-		ssize_t written = xwrite(fd, p, count);
+		ssize_t written = 0;
+        if (count >= INT_MAX)
+			written = xwrite(fd, p, INT_MAX-1);
+        else
+			written = xwrite(fd, p, count);
+
 		if (written < 0)
 			return -1;
 		if (!written) {
