diff --git a/Lib/test/test_largefile.py b/Lib/test/test_largefile.py
index 54fd274..3f3b8f1 100644
--- a/Lib/test/test_largefile.py
+++ b/Lib/test/test_largefile.py
@@ -12,7 +12,7 @@
 
 
 # only run if the current system support large files
-f = open(test_support.TESTFN, 'w')
+f = open(test_support.TESTFN, 'wb')
 try:
     # 2**31 == 2147483648
     f.seek(2147483649L)
@@ -58,13 +58,13 @@
 
 if test_support.verbose:
     print 'create large file via seek (may be sparse file) ...'
-f = open(name, 'w')
+f = open(name, 'wb')
 f.seek(size)
 f.write('a')
 f.flush()
-expect(os.fstat(f.fileno())[stat.ST_SIZE], size+1)
 if test_support.verbose:
     print 'check file size with os.fstat'
+expect(os.fstat(f.fileno())[stat.ST_SIZE], size+1)
 f.close()
 if test_support.verbose:
     print 'check file size with os.stat'
@@ -72,7 +72,7 @@
 
 if test_support.verbose:
     print 'play around with seek() and read() with the built largefile'
-f = open(name, 'r')
+f = open(name, 'rb')
 expect(f.tell(), 0)
 expect(f.read(1), '\000')
 expect(f.tell(), 1)
diff --git a/Misc/NEWS b/Misc/NEWS
index 50ec64f..3fa2cb6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -155,6 +155,12 @@
 
 Windows
 
+- Large file support is now enabled on Win32 platforms as well as on
+  Win64.  This means that, for example, you can use f.tell() and f.seek()
+  to manipulate files larger than 2 gigabytes (provided you have enough
+  disk space, and are using a Windows filesystem that supports large
+  partitions).
+
 - The w9xpopen hack is now used on Windows NT and 2000 too when COMPSPEC
   points to command.com (patch from Brian Quinlan).
 
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 5f6f21d..0b4b765 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -264,7 +264,7 @@
 
 /* choose the appropriate stat and fstat functions and return structs */
 #undef STAT
-#ifdef MS_WIN64
+#if defined(MS_WIN64) || defined(MS_WIN32)
 #	define STAT _stati64
 #	define FSTAT _fstati64
 #	define STRUCT_STAT struct _stati64
@@ -3491,7 +3491,7 @@
 posix_lseek(PyObject *self, PyObject *args)
 {
 	int fd, how;
-#ifdef MS_WIN64
+#if defined(MS_WIN64) || defined(MS_WIN32)
 	LONG_LONG pos, res;
 #else
 	off_t pos, res;
@@ -3518,7 +3518,7 @@
 		return NULL;
 
 	Py_BEGIN_ALLOW_THREADS
-#ifdef MS_WIN64
+#if defined(MS_WIN64) || defined(MS_WIN32)
 	res = _lseeki64(fd, pos, how);
 #else
 	res = lseek(fd, pos, how);
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index f592e7a..5909e99 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -367,7 +367,7 @@
 	} else {
 		Py_BEGIN_ALLOW_THREADS
 		errno = 0;
-		ret = _chsize(fileno(f->f_fp), newsize);
+		ret = _chsize(fileno(f->f_fp), (long)newsize);
 		Py_END_ALLOW_THREADS
 		if (ret != 0) goto onioerror;
 	}
diff --git a/PC/pyconfig.h b/PC/pyconfig.h
index f287605..370b518 100644
--- a/PC/pyconfig.h
+++ b/PC/pyconfig.h
@@ -313,6 +313,7 @@
 #	define HAVE_LARGEFILE_SUPPORT
 #elif defined(MS_WIN32)
 #	define PLATFORM "win32"
+#	define HAVE_LARGEFILE_SUPPORT
 #	ifdef _M_ALPHA
 #		define SIZEOF_VOID_P 8
 #		define SIZEOF_TIME_T 8
