Windows changes to move from Tcl/Tk 8.3.2 to 8.4.1.  I tested this by
running IDLE, and since I'm not a Tcl Guy I'm not sure what else to do.
Up to you!  See XXX comments in PCbuild\readme.txt for cautions.

Also repaired typos in the new bz2-for-Windows instructions.
diff --git a/PCbuild/_tkinter.dsp b/PCbuild/_tkinter.dsp
index 442af4c..836ff0f 100644
--- a/PCbuild/_tkinter.dsp
+++ b/PCbuild/_tkinter.dsp
@@ -44,7 +44,7 @@
 # PROP Target_Dir ""

 F90=df.exe

 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c

-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\tcl\include" /I "..\Include" /I "..\PC" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c

+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\tcl84\include" /I "..\Include" /I "..\PC" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c

 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32

 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32

 # ADD BASE RSC /l 0x409 /d "_DEBUG"

@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo

 LINK32=link.exe

 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 ..\..\tcl\lib\tk83.lib ..\..\tcl\lib\tcl83.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter_d.pyd" /pdbtype:sept /libpath:"C:\Program Files\Tcl\lib"

+# ADD LINK32 ..\..\tcl84\lib\tk84.lib ..\..\tcl84\lib\tcl84.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter_d.pyd" /pdbtype:sept /libpath:"C:\Program Files\Tcl\lib"

 # SUBTRACT LINK32 /pdb:none

 

 !ELSEIF  "$(CFG)" == "_tkinter - Win32 Release"

@@ -72,7 +72,7 @@
 # PROP Target_Dir ""

 F90=df.exe

 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\tcl\include" /I "..\Include" /I "..\PC" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c

+# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\tcl84\include" /I "..\Include" /I "..\PC" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c

 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32

 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32

 # ADD BASE RSC /l 0x409 /d "NDEBUG"

@@ -82,7 +82,7 @@
 # ADD BSC32 /nologo

 LINK32=link.exe

 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386

-# ADD LINK32 ..\..\tcl\lib\tk83.lib ..\..\tcl\lib\tcl83.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter.pyd" /libpath:"C:\Program Files\Tcl\lib"

+# ADD LINK32 ..\..\tcl84\lib\tk84.lib ..\..\tcl84\lib\tcl84.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter.pyd" /libpath:"C:\Program Files\Tcl\lib"

 # SUBTRACT LINK32 /pdb:none

 

 !ENDIF 

diff --git a/PCbuild/python.dsp b/PCbuild/python.dsp
index 57a4734..1c72974 100644
--- a/PCbuild/python.dsp
+++ b/PCbuild/python.dsp
@@ -4,7 +4,7 @@
 

 # TARGTYPE "Win32 (x86) Console Application" 0x0103

 

-CFG=python - Win32 Alpha Release

+CFG=python - Win32 Release

 !MESSAGE This is not a valid makefile. To build this project using NMAKE,

 !MESSAGE use the Export Makefile command and run

 !MESSAGE 

@@ -13,7 +13,7 @@
 !MESSAGE You can specify a configuration when running NMAKE

 !MESSAGE by defining the macro CFG on the command line. For example:

 !MESSAGE 

-!MESSAGE NMAKE /f "python.mak" CFG="python - Win32 Alpha Release"

+!MESSAGE NMAKE /f "python.mak" CFG="python - Win32 Release"

 !MESSAGE 

 !MESSAGE Possible choices for configuration are:

 !MESSAGE 

diff --git a/PCbuild/python20.wse b/PCbuild/python20.wse
index 0a016d9..89c3f05 100644
--- a/PCbuild/python20.wse
+++ b/PCbuild/python20.wse
@@ -31,8 +31,8 @@
   Variable Default1=C:\PROGRAM FILES\WISE INSTALLMASTER 8.1
   Variable Flags1=00001000
   Variable Name2=_TCLMINOR_
-  Variable Description2=Tcl/Tk Minor Version (e.g. the "3" in "8.3.1")
-  Variable Default2=3
+  Variable Description2=Tcl/Tk Minor Version (e.g. the "4" in "8.4.1")
+  Variable Default2=4
   Variable Flags2=00001000
   Variable Name3=_DOC_
   Variable Description3=The unpacked HTML doc directory.
@@ -2048,19 +2048,19 @@
   Text=Tcl/Tk
 end
 item: Install File
-  Source=..\..\tcl\bin\tcl8%_tclminor_%.dll
+  Source=..\..\tcl84\bin\tcl8%_tclminor_%.dll
   Destination=%MAINDIR%\DLLs\tcl8%_TCLMINOR_%.dll
   Description=Tcl/Tk binaries and libraries
   Flags=0000000000000010
 end
 item: Install File
-  Source=..\..\tcl\bin\tk8%_tclminor_%.dll
+  Source=..\..\tcl84\bin\tk8%_tclminor_%.dll
   Destination=%MAINDIR%\DLLs\tk8%_TCLMINOR_%.dll
   Description=Tcl/Tk binaries and libraries
   Flags=0000000000000010
 end
 item: Install File
-  Source=..\..\tcl\lib\*.*
+  Source=..\..\tcl84\lib\*.*
   Destination=%MAINDIR%\tcl
   Description=Tcl/Tk binaries and libraries
   Flags=0000000100000010
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index 5073a41..5c8fdf6 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -71,10 +71,53 @@
 unpack into new subdirectories of dist\.
 
 _tkinter
-    Python wrapper for the Tk windowing system.  Requires tcl832.exe from
-        http://dev.scriptics.com/software/tcltk/downloadnow83.html
-    Run the installer, forcing installation into dist\Tcl.
-    Be sure to install everything, including the Tcl/Tk header files.
+    Python wrapper for the Tk windowing system.  Requires building
+    Tcl/Tk first.  Following are instructions for Tcl/Tk 8.4.1:
+
+    Get source
+    ----------
+    Go to
+        http://prdownloads.sourceforge.net/tcl/
+    and download
+        tcl841-src.zip
+        tk841-src.zip
+    Unzip into
+        dist\tcl8.4.1\
+        dist\tk\8.4.1\
+    respectively.
+
+    Build Tcl first (done here w/ MSVC 6 on Win2K)
+    ----------------------------------------------
+    cd dist\tcl8.4.1\win
+    run vcvars32.bat [necessary even on Win2K]
+    nmake -f makefile.vc
+    nmake -f makefile.vc INSTALLDIR=..\..\tcl84 install
+
+    XXX Should we compile with OPTS=threads?
+
+    XXX Some tests failed in "nmake -f makefile.vc test".
+
+    XXX Should rename destination directory to something more generic
+    XXX then tcl84.  But unless I can backport 8.3.4 to the 2.2 line
+    XXX too, I've got to be able to build using more than oneX Tcl/Tk
+    XXX release, and that effectively reserves the "tcl" directory name
+    XXX for the duration.  Nothing that requires thought is going to
+    XXX work when it comes to release crunch times.
+
+
+    Build Tk
+    -------
+    cd dist\tk8.4.1\win
+    nmake -f makefile.vc TCLDIR=..\..\tcl8.4.1
+    nmake -f makefile.vc TCLDIR=..\..\tcl8.4.1 INSTALLDIR=..\..\tcl84 install
+
+    XXX Should we compile with OPTS=threads?
+
+    XXX Some tests failed in "nmake -f makefile.vc test".
+
+    XXX Our installer copies a lot of stuff out of the Tcl/Tk install
+    XXX directory.  Is all of that really needed for Python use of Tcl/Tk?
+
 
 zlib
     Python wrapper for the zlib compression library.  Get the source code
@@ -92,13 +135,15 @@
     Python wrapper for the libbz2 compression library.  Homepage
         http://sources.redhat.com/bzip2/
     Download the source tarball, bzip2-1.0.2.tar.gz.
-    Unpack into dist\bzip2-1.0.2.  WARNING:  If you using WinZip, you
+    Unpack into dist\bzip2-1.0.2.  WARNING:  If you're using WinZip, you
     must disable its "TAR file smart CR/LF conversion" feature (under
     Options -> Configuration -> Miscellaneous -> Other) for the duration.
+
     Don't bother trying to use libbz2.dsp with MSVC.  After 10 minutes
     of fiddling, I couldn't get it to work.  Perhaps it works with
     MSVC 5 (I used MSVC 6).  It's better to run the by-hand makefile
-    anyway, because it runs a  helpful test step at the end.
+    anyway, because it runs a helpful test step at the end.
+
     cd into dist\bzip2-1.0.2, and run
         nmake -f makefile.msc
     [Note that if you're running Win9X, you'll need to run vcvars32.bat
@@ -106,11 +151,12 @@
      TODO:  make this work like zlib (in particular, MSVC runs the prelink
      step in an enviroment that already has the correct envars set up).
     ]
-    The make step should yield any warnings or errors, and should end
+    The make step shouldn't yield any warnings or errors, and should end
     by displaying 6 blocks each terminated with
         FC: no differences encountered
     If FC finds differences, see the warning abou WinZip above (when I
     first tried it, sample3.ref failed due to CRLF conversion).
+
     All of this managed to build bzip2-1.0.2\libbz2.lib, which the Python
     project links in.