diff --git a/doc/libstddjb/djbunix.html b/doc/libstddjb/djbunix.html
index 6223bf4..803f2ea 100644
--- a/doc/libstddjb/djbunix.html
+++ b/doc/libstddjb/djbunix.html
@@ -120,7 +120,7 @@ Returns 0 if it succeeds, or -1 (and sets errno) if it fails.
 </p>
 
 <p>
-<code> void fd_close (int fd) </code> <br />
+<code> int fd_close (int fd) </code> <br />
 Closes <em>fd</em>.
 This is a <a href="safewrappers.html">safe wrapper</a> around
 <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/close.html">close()</a>.
diff --git a/src/include/skalibs/djbunix.h b/src/include/skalibs/djbunix.h
index fe8c2f9..1a59b33 100644
--- a/src/include/skalibs/djbunix.h
+++ b/src/include/skalibs/djbunix.h
@@ -26,7 +26,7 @@ extern int fd_copy (int, int) ;
 extern int fd_copy2 (int, int, int, int) ;
 extern int fd_move (int, int) ;
 extern int fd_move2 (int, int, int, int) ;
-extern void fd_close (int) ;
+extern int fd_close (int) ;
 extern int fd_chmod (int, unsigned int) ;
 extern int fd_chown (int, uid_t, gid_t) ;
 extern int fd_sync (int) ;
diff --git a/src/libstddjb/fd_close.c b/src/libstddjb/fd_close.c
index a3c7880..04d08de 100644
--- a/src/libstddjb/fd_close.c
+++ b/src/libstddjb/fd_close.c
@@ -4,9 +4,10 @@
 #include <errno.h>
 #include <skalibs/djbunix.h>
 
-void fd_close (int fd)
+int fd_close (int fd)
 {
   int e = errno ;
-  while (close(fd) < 0 && errno == EINTR) ;
+  while (close(fd) < 0) if (errno != EINTR) return -1 ;
   errno = e ;
+  return 0 ;
 }