Index: src/common/FileSupport.cpp
===================================================================
diff -u -rd2b121c78f510b5384b8ef0ca80afbfd7f77fef7 -re912e0a6b456c2eed24bec7303a908d3ff0aa59a
--- src/common/FileSupport.cpp	(.../FileSupport.cpp)	(revision d2b121c78f510b5384b8ef0ca80afbfd7f77fef7)
+++ src/common/FileSupport.cpp	(.../FileSupport.cpp)	(revision e912e0a6b456c2eed24bec7303a908d3ff0aa59a)
@@ -85,61 +85,23 @@
 
 // disk support routines
 
-bool GetDynamicFreeSpace(LPCTSTR lpszPath, __int64* pFree, __int64* pTotal)
+bool GetDynamicFreeSpace(LPCTSTR lpszPath, ull_t* pFree, ull_t* pTotal)
 {
-	typedef BOOL(__stdcall *PGETDISKFREESPACEEX)(LPCTSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailable, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes);
-
 	ULARGE_INTEGER ui64Available, ui64Total;
-	PGETDISKFREESPACEEX pGetDiskFreeSpaceEx;
-	HMODULE hModule = GetModuleHandle(_T("kernel32.dll"));
-	if(!hModule)
-		return false;
-	pGetDiskFreeSpaceEx = (PGETDISKFREESPACEEX)GetProcAddress(hModule, "GetDiskFreeSpaceExA");
-	if (pGetDiskFreeSpaceEx)
+	if(!GetDiskFreeSpaceEx(lpszPath, &ui64Available, &ui64Total, NULL))
 	{
-		if (!pGetDiskFreeSpaceEx(lpszPath, &ui64Available, &ui64Total, NULL))
-		{
-			if (pFree)
-				*pFree=-1;
-			if (pTotal)
-				*pTotal=-1;
-			return false;
-		}
-		else
-		{
-			if (pFree)
-				*pFree=ui64Available.QuadPart;
-			if (pTotal)
-				*pTotal=ui64Total.QuadPart;
-			return true;
-		}
+		if(pFree)
+			*pFree=-1;
+		if(pTotal)
+			*pTotal=-1;
+		return false;
 	}
-	else 
+	else
 	{
-		// support for win95 (not osr2)
-		// set the root for path and correct '\\' at the end
-		TCHAR szDisk[_MAX_DRIVE];
-		_tsplitpath(lpszPath, szDisk, NULL, NULL, NULL);
-		if (_tcslen(szDisk) != 0 && szDisk[_tcslen(szDisk)-1] != _T('\\'))
-			_tcscat(szDisk, _T("\\"));
-
-		// std func
-		DWORD dwSectPerClust, dwBytesPerSect, dwFreeClusters, dwTotalClusters;
-		if (!GetDiskFreeSpace(szDisk, &dwSectPerClust, &dwBytesPerSect, &dwFreeClusters, &dwTotalClusters))
-		{
-			if (pFree)
-				*pFree=-1;
-			if (pTotal)
-				*pTotal=-1;
-			return false;
-		}
-		else
-		{
-			if (pFree)
-				*pFree=((__int64)dwFreeClusters*(__int64)dwSectPerClust)*(__int64)dwBytesPerSect;
-			if (pTotal)
-				*pTotal=((__int64)dwTotalClusters*(__int64)dwSectPerClust)*(__int64)dwBytesPerSect;
-			return true;
-		}
+		if(pFree)
+			*pFree=ui64Available.QuadPart;
+		if(pTotal)
+			*pTotal=ui64Total.QuadPart;
+		return true;
 	}
 }