diff --git a/files/drive.c b/files/drive.c
index 0c63a9c5bc216176482bf9048ad6104b4d0b838d..c78c8ac8552c9d39f0e5fe1637b0dbf9094c2f58 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -827,10 +827,14 @@ BOOL32 WINAPI GetDiskFreeSpaceEx32A( LPCSTR root,
     }
     if (!DRIVE_GetFreeSpace(drive, &size, &available)) return FALSE;
     /*FIXME: Do we have the number of bytes available to the user? */
-    avail->HighPart = available.HighPart;
-    totalfree->HighPart = size.HighPart;
-    avail->LowPart = available.LowPart ;
-    totalfree->LowPart = size.LowPart ;
+    if (totalfree) {
+    	totalfree->HighPart = size.HighPart;
+    	totalfree->LowPart = size.LowPart ;
+    }
+    if (avail) {
+        avail->HighPart = available.HighPart;
+        avail->LowPart = available.LowPart ;
+    }
     return TRUE;
 }