--- coreutils-8.12/lib/fsusage.c	2011-04-24 10:21:45.000000000 -0700
+++ coreutils-8.12.new/lib/fsusage.c	2011-07-20 23:50:51.000000000 -0700
@@ -23,7 +23,11 @@
 #include <limits.h>
 #include <sys/types.h>
 
-#if STAT_STATVFS                /* POSIX 1003.1-2001 (and later) with XSI */
+#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
+#define DARWIN7
+#endif
+
+#if STAT_STATVFS && !defined(DARWIN7)                /* POSIX 1003.1-2001 (and later) with XSI */
 # include <sys/statvfs.h>
 #else
 /* Don't include backward-compatibility files unless they're needed.
@@ -94,7 +98,7 @@
 int
 get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp)
 {
-#if defined STAT_STATVFS                /* POSIX, except glibc/Linux */
+#if defined STAT_STATVFS && ! defined DARWIN7  /* POSIX, except glibc/Linux */
 
   struct statvfs fsd;
 
@@ -165,9 +169,11 @@ get_fs_usage (char const *file, char con
 
   fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_fsize);
 
-#elif defined STAT_STATFS2_BSIZE        /* glibc/Linux, 4.3BSD, SunOS 4, \
-                                           MacOS X < 10.4, FreeBSD < 5.0, \
-                                           NetBSD < 3.0, OpenBSD < 4.4 */
+#elif defined STAT_STATFS2_BSIZE || defined DARWIN7 /* glibc/Linux, 4.3BSD, \
+                                                     * SunOS 4, MacOS X,    \
+                                                     * FreeBSD < 5.0,       \
+                                                     * NetBSD < 3.0,        \
+                                                     * OpenBSD < 4.4 */
 
   struct statfs fsd;
 
@@ -224,7 +230,8 @@ get_fs_usage (char const *file, char con
 #endif
 
 #if (defined STAT_STATVFS \
-     || (!defined STAT_STATFS2_FS_DATA && !defined STAT_READ_FILSYS))
+     || (!defined STAT_STATFS2_FS_DATA && !defined STAT_READ_FILSYS) \
+     || defined DARWIN7)
 
   fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.f_blocks);
   fsp->fsu_bfree = PROPAGATE_ALL_ONES (fsd.f_bfree);
