diff --git a/Lib/lib-tk/FixTk.py b/Lib/lib-tk/FixTk.py
new file mode 100644
index 0000000..6c7de03
--- /dev/null
+++ b/Lib/lib-tk/FixTk.py
@@ -0,0 +1,64 @@
+"""Utility which tries to locate the Tcl/Tk 8.0 DLLs on Windows.
+
+This is a no-op on other platforms.
+"""
+
+# Error messages we may spit out
+
+NO_TCL_MESSAGE = """\
+WHOOPS!  I can't find a Tcl/Tk 8.0 installation anywhere.
+Please make sure that Tcl.Tk 8.0 is installed and that the PATH
+environment variable is set to include the Tcl/bin directory
+(or wherever TK80.DLL and TCL80.DLL are installed).
+If you don't know how to fix this, consider searching the Python FAQ
+for the error you get; post to the comp.lang.python if all else fails.
+Read the source file FixTk.py for details.
+"""
+
+NO_TKINTER_MESSAGE = """\
+WHOOPS!  Even though I think I have found a Tcl/Tk 8.0 installation,
+I can't seem to import the _tkinter extension module.
+I get the following exception:
+    ImportError: %s
+If you don't know how to fix this, consider searching the Python FAQ
+for the error you get; post to the comp.lang.python if all else fails.
+Read the source file FixTk.py for details.
+"""
+
+import sys
+if sys.platform == "win32":
+    try:
+        import _tkinter
+    except ImportError:
+        import os
+        try:
+            path = os.environ['PATH']
+        except KeyError:
+            path = ""
+        python_exe = sys.executable
+        python_dir = os.path.dirname(python_exe)
+        program_files = os.path.dirname(python_dir)
+        def tclcheck(dir):
+            for dll in "tcl80.dll", "tk80.dll", "tclpip80.dll":
+                if not os.path.isfile(os.path.join(dir, dll)):
+                    return 0
+            return 1
+        for tcldir in [program_files, "\\Program files", "\\",
+                       "C:\\Program Files", "D:\\Program Files"]:
+            tcldir = os.path.join(tcldir, "Tcl", "bin")
+            if tclcheck(tcldir):
+                break
+        else:
+            tcldir = None
+        if not tcldir:
+            sys.stderr.write(NO_TCL_MESSAGE)
+        else:
+            if path and path[-1] != os.pathsep:
+                path = path + os.pathsep
+            path = path + tcldir
+            os.environ["PATH"] = path
+            os.putenv("PATH", path)
+            try:
+                import _tkinter
+            except ImportError, message:
+                sys.stderr.write(NO_TKINTER_MESSAGE % str(message))
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index 04a863a..344dd8a 100644
--- a/Lib/lib-tk/Tkinter.py
+++ b/Lib/lib-tk/Tkinter.py
@@ -2,7 +2,10 @@
 
 __version__ = "$Revision$"
 
-import _tkinter # If this fails your Python is not configured for Tk
+import sys
+if sys.platform == "win32":
+    import FixTk # Attempt to configure Tcl/Tk without requiring PATH
+import _tkinter # If this fails your Python may not be configured for Tk
 tkinter = _tkinter # b/w compat for export
 TclError = _tkinter.TclError
 from types import *
