diff -uraN coreutils-6.12.orig/configure coreutils-6.12/configure
--- coreutils-6.12.orig/configure	2008-05-31 21:23:27.000000000 +0000
+++ coreutils-6.12/configure	2008-06-24 01:44:01.093151882 +0000
@@ -25272,7 +25272,7 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/types.h>
-#if defined __GLIBC__ && !defined __BEOS__
+#if defined __GLIBC__ && !defined __BEOS__ && !defined __OpenSolaris_kernel__
 Do not use statvfs on systems with GNU libc, because that function stats
 all preceding entries in /proc/mounts, and that makes df hang if even
 one of the corresponding file systems is hard-mounted, but not available.
diff -uraN coreutils-6.12.orig/m4/fsusage.m4 coreutils-6.12/m4/fsusage.m4
--- coreutils-6.12.orig/m4/fsusage.m4	2007-08-28 07:58:10.000000000 +0000
+++ coreutils-6.12/m4/fsusage.m4	2008-06-24 01:44:15.219764326 +0000
@@ -47,7 +47,7 @@
   # SVR4
   AC_CACHE_CHECK([for statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
 		 [AC_TRY_LINK([#include <sys/types.h>
-#if defined __GLIBC__ && !defined __BEOS__
+#if defined __GLIBC__ && !defined __BEOS__ && !defined __OpenSolaris_kernel__
 Do not use statvfs on systems with GNU libc, because that function stats
 all preceding entries in /proc/mounts, and that makes df hang if even
 one of the corresponding file systems is hard-mounted, but not available.
