diff --git a/aegisub/libaegisub/include/libaegisub/util.h b/aegisub/libaegisub/include/libaegisub/util.h
index d21b606e509af80182241ca6159d3a7f0d355642..b9e2161b103d80e15c68e9cb4109c57c1c73d736 100644
--- a/aegisub/libaegisub/include/libaegisub/util.h
+++ b/aegisub/libaegisub/include/libaegisub/util.h
@@ -22,6 +22,7 @@
 #include <string>
 #include <stdio.h>
 #include <time.h>
+#include <sys/statvfs.h>
 
 #include <algorithm>
 #endif // LAGI_PRE
diff --git a/aegisub/libaegisub/lagi_pre.h b/aegisub/libaegisub/lagi_pre.h
index 164d61f37bbb246774b2dd0e0bb68380a85d4902..74d051b3324596b0c067900ca7bd1a78038f4013 100644
--- a/aegisub/libaegisub/lagi_pre.h
+++ b/aegisub/libaegisub/lagi_pre.h
@@ -26,7 +26,7 @@
 
 // Unix C
 #ifndef _WIN32
-#  include <sys/mount.h> // yep, this exists on MacOS X as well, but not on Windows.
+#  include <sys/statvfs.h>
 #endif
 
 // Common C++
diff --git a/aegisub/libaegisub/unix/util.cpp b/aegisub/libaegisub/unix/util.cpp
index ecc8bb2892c914b9ff2461227699d812b824b133..691b796e3671c6e25abc538d83875246207a064d 100644
--- a/aegisub/libaegisub/unix/util.cpp
+++ b/aegisub/libaegisub/unix/util.cpp
@@ -60,7 +60,7 @@ void time_log(timeval &tv) {
 }
 
 uint64_t freespace(std::string &path, PathType type) {
-	struct statfs fs;
+	struct statvfs fs;
 	std::string check(path);
 
 	if (type == TypeFile)
@@ -68,7 +68,7 @@ uint64_t freespace(std::string &path, PathType type) {
 
 	acs::CheckDirRead(check);
 
-	if ((statfs(check.c_str(), &fs)) == 0) {
+	if ((statvfs(check.c_str(), &fs)) == 0) {
 		return fs.f_bsize * fs.f_bavail;
 	} else {
 		/// @todo We need a collective set of exceptions for ENOTDIR, EIO etc.