diff --git a/ChangeLog b/ChangeLog
index a152011cd3bd22f88f7242d6b2b244812addaa0e..4513f141376b10770a9c622593cde38206f0a69a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-24	Nick Schermer <nick@xfce.org>
+
+	* configure.in.in, thunar-vfs/thunar-vfs-io-local-xfer.c: Use
+	  posix_fadvise when available.
+
 2008-11-23	Nick Schermer <nick@xfce.org>
 
 	* thunar/main.c: Use -V for version information.
diff --git a/configure.in.in b/configure.in.in
index 0fbebe1e72d7e1f595efc99c26e38d27dba32715..c1b8c1a274a816eafb6aefdf99586c857f28b160 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -118,7 +118,7 @@ AC_CHECK_FUNCS([attropen extattr_get_fd fgetxattr futimes getdents getfsspec \
                 getfsstat lchmod localeconv localtime_r mbrtowc mkdtemp mkfifo \
                 posix_madvise pread pwrite readdir_r sched_yield setgroupent \
                 setmntent setpassent setpriority statfs statvfs statvfs1 \
-                strcoll strlcpy strptime symlink syslog])
+                strcoll strlcpy strptime symlink syslog posix_fadvise])
 
 dnl ******************************************
 dnl *** Linux/glibc specified work-arounds ***
diff --git a/thunar-vfs/thunar-vfs-io-local-xfer.c b/thunar-vfs/thunar-vfs-io-local-xfer.c
index c9ab67a886438a3fde47fa18cca806116514439b..64201927f9a8301bbac9e152c8525bc269f7c4d8 100644
--- a/thunar-vfs/thunar-vfs-io-local-xfer.c
+++ b/thunar-vfs/thunar-vfs-io-local-xfer.c
@@ -252,6 +252,11 @@ tvilx_copy_regular (const gchar                   *source_absolute_path,
   else
 #endif /* !HAVE_MMAP */
     {
+#ifdef HAVE_POSIX_FADVISE
+      /* tell the system that the data will be read sequentially */
+      posix_fadvise (source_fd, 0, 0, POSIX_FADV_SEQUENTIAL);
+#endif
+
       /* allocate the transfer buffer */
       bufsize = 8 * source_statb->st_blksize;
       buffer = g_new (gchar, bufsize);