diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index e13bafc..2abde13 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -29,6 +29,8 @@
 import rpc
 import RemoteDebugger
 
+import boolcheck
+
 IDENTCHARS = string.ascii_letters + string.digits + "_"
 
 # Change warnings module to write to sys.__stderr__
diff --git a/Lib/idlelib/idle b/Lib/idlelib/idle
index d5aab04..08af399 100755
--- a/Lib/idlelib/idle
+++ b/Lib/idlelib/idle
@@ -1,33 +1,17 @@
 #! /usr/bin/env python
 
-# Add IDLE.app/Contents/Resources/idlelib to path.
-# __file__ refers to this file when it is used as a module, sys.argv[0]
-# refers to this file when it is used as a script (pythonw macosx_main.py)
-import sys
-from os.path import split, join
-try:
-    __file__
-except NameError:
-    __file__ = sys.argv[0]
-idlelib = join(split(__file__)[0], 'idlelib')
-if os.path.isdir(idlelib):
-    sys.path.append(idlelib)
+import sys as _sys
 
-# Make sure True, False, bool() builtins exist.
-# - preserves 2.2 compatibility - 2.2.1 includes bool, 2.2 does not.
-# - important for Mac OS X because it ships python 2.2
-import boolcheck
-
-# see if we are being asked to execute the subprocess code
-if '-p' in sys.argv:
-    # run expects only the port number in sys.argv
-    sys.argv.remove('-p')
+# See if we are being asked to execute the subprocess code
+if '-p' in _sys.argv:
+    # run expects only the port number in _sys.argv
+    _sys.argv.remove('-p')
 
     # this module will become the namepsace used by the interactive
     # interpreter; remove all variables we have defined.
-    del sys, __file__, boolcheck, split, join
+    del _sys
     __import__('run').main()
 else:
-    # start the application.
+    # Start the IDLE GUI
     import PyShell
     PyShell.main()
diff --git a/Lib/idlelib/setup.py b/Lib/idlelib/setup.py
index 2305adc..02fd997 100644
--- a/Lib/idlelib/setup.py
+++ b/Lib/idlelib/setup.py
@@ -31,6 +31,15 @@
 txt_files += ['config-extensions.def', 'config-highlight.def',
               'config-keys.def', 'config-main.def']
 Icons = glob.glob1("Icons","*.gif")
+
+# Create a .pth file to live in site-packages; Python will add IDLE to
+# sys.path:
+
+pathfile = idle_name + ".pth"
+pfile = open(pathfile, 'w')
+pfile.write(pkgname +'\n')
+pfile.close()
+
 class IDLE_Builder(build_py):
     def get_plain_outfile(self, build_dir, package, file):
         # like get_module_outfile, but does not append .py
@@ -54,6 +63,12 @@
             self.mkpath(dir)
             self.copy_file(os.path.join("Icons", name),
                            outfile, preserve_mode = 0)
+        # Copy the .pth file to the same level as the package directory
+        outfile = self.get_plain_outfile(self.build_lib, [], pathfile)
+        dir = os.path.dirname(outfile)
+        self.mkpath(dir)
+        self.copy_file(os.path.join(package_dir, pathfile), outfile,
+                       preserve_mode=0)
 
     def get_source_files(self):
         # returns the .py files, the .txt and .def files, and the icons
