diff --git a/files/drive.c b/files/drive.c
index 624c28346511d0408001c5f5494d1579ffcc246a..bd45c3f23af0367291b0cf5d9985dead5f586b0c 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -858,8 +858,25 @@ BOOL WINAPI GetDiskFreeSpaceExA( LPCSTR root,
 
     if (avail)
     {
-        FIXME_(dosfs)("no per-user quota support yet\n");
-        /* Quick hack */
+        if (FIXME_ON(dosfs))
+	{
+            /* On Windows2000, we need to check the disk quota
+	       allocated for the user owning the calling process. We
+	       don't want to be more obtrusive than necessary with the
+	       FIXME messages, so don't print the FIXME unless Wine is
+	       actually masquerading as Windows2000. */
+
+            OSVERSIONINFOA ovi;
+	    ovi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
+	    if (GetVersionExA(&ovi))
+	    {
+	      if (ovi.dwPlatformId == VER_PLATFORM_WIN32_NT && ovi.dwMajorVersion > 4)
+                  FIXME_(dosfs)("no per-user quota support yet\n");
+	    }
+	}
+
+        /* Quick hack, should eventually be fixed to work 100% with
+           Windows2000 (see comment above). */
         avail->HighPart = totalfree->HighPart;
         avail->LowPart = totalfree->LowPart ;
     }