--- a/bzip2.c
+++ b/bzip2.c
@@ -69,7 +69,6 @@
 #if BZ_UNIX
 #   include <fcntl.h>
 #   include <sys/types.h>
-#   include <utime.h>
 #   include <unistd.h>
 #   include <sys/stat.h>
 #   include <sys/times.h>
@@ -1051,12 +1050,12 @@ void applySavedTimeInfoToOutputFile ( Ch
 {
 #  if BZ_UNIX
    IntNative      retVal;
-   struct utimbuf uTimBuf;
+   struct timespec uTimBuf[2] = {};
 
-   uTimBuf.actime = fileMetaInfo.st_atime;
-   uTimBuf.modtime = fileMetaInfo.st_mtime;
+   uTimBuf[0].tv_sec = fileMetaInfo.st_atime;
+   uTimBuf[1].tv_sec = fileMetaInfo.st_mtime;
 
-   retVal = utime ( dstName, &uTimBuf );
+   retVal = utimensat ( AT_FDCWD, dstName, uTimBuf , 0 );
    ERROR_IF_NOT_ZERO ( retVal );
 #  endif
 }
