Initial revision
diff --git a/Lib/idlelib/help.txt b/Lib/idlelib/help.txt
new file mode 100644
index 0000000..001da01
--- /dev/null
+++ b/Lib/idlelib/help.txt
@@ -0,0 +1,155 @@
+[See end for tips.]
+
+Click on the dotted line at the top of a menu to "tear it off": a
+separate window containing the menu is created.
+
+File menu:
+
+	New window -- create a new editing window
+	Open... -- open an existing file
+	Open module... -- open an existing module (searches sys.path)
+	Class browser -- show classes and methods in current file
+	Path browser -- show sys.path directories, modules, classes
+		and methods
+	---
+	Save -- save current window to the associated file (unsaved
+		windows have a * before and after the window title)
+
+	Save As... -- save current window to new file, which becomes
+		the associated file
+	Save Copy As... -- save current window to different file
+		without changing the associated file
+	---
+	Close -- close current window (asks to save if unsaved)
+	Exit -- close all windows and quit IDLE (asks to save if unsaved)
+
+Edit menu:
+
+	Undo -- Undo last change to current window (max 1000 changes)
+	Redo -- Redo last undone change to current window
+	---
+	Cut -- Copy selection into system-wide clipboard; then delete selection
+	Copy -- Copy selection into system-wide clipboard
+	Paste -- Insert system-wide clipboard into window
+	Select All -- Select the entire contents of the edit buffer
+	---
+	Find... -- Open a search dialog box with many options
+	Find again -- Repeat last search
+	Find selection -- Search for the string in the selection
+	Find in Files... -- Open a search dialog box for searching files
+	Replace... -- Open a search-and-replace dialog box
+	Go to line -- Ask for a line number and show that line
+	---
+	Indent region -- Shift selected lines right 4 spaces
+	Dedent region -- Shift selected lines left 4 spaces
+	Comment out region -- Insert ## in front of selected lines
+	Uncomment region -- Remove leading # or ## from selected lines
+	Tabify region -- Turns *leading* stretches of spaces into tabs
+	Untabify region -- Turn *all* tabs into the right number of spaces
+	Expand word -- Expand the word you have typed to match another
+		word in the same buffer; repeat to get a different expansion
+	Format Paragraph -- Reformat the current blank-line-separated paragraph
+	---
+	Import module -- Import or reload the current module
+	Run script -- Execute the current file in the __main__ namespace
+
+Windows menu:
+
+	Zoom Height -- toggles the window between normal size (24x80)
+	and maximum height.
+	---
+	The rest of this menu lists the names of all open windows;
+	select one to bring it to the foreground (deiconifying it if
+	necessary).
+
+Debug menu (in the Python Shell window only):
+
+	Go to file/line -- look around the insert point for a filename
+		and linenumber, open the file, and show the line
+	Open stack viewer -- show the stack traceback of the last exception
+	Debugger toggle -- Run commands in the shell under the debugger
+	JIT Stack viewer toggle -- Open stack viewer on traceback
+
+Basic editing and navigation:
+
+	Backspace deletes to the left; DEL deletes to the right
+	Arrow keys and Page Up/Down to move around
+	Home/End go to begin/end of line
+	Control-Home/End go to begin/end of file
+	Some Emacs bindings may also work, e.g. ^B/^P/^A/^E/^D/^L
+
+Automatic indentation:
+
+	After a block-opening statement, the next line is indented by
+	4 spaces (in the Python Shell window by one tab).  After
+	certain keywords (break, return etc.) the next line is
+	dedented.  In leading indentation, Backspace deletes up to 4
+	spaces if they are there.  Tab inserts 1-4 spaces (in the
+	Python Shell window one tab).  See also the indent/dedent
+	region commands in the edit menu.
+
+Python Shell window:
+
+	^C interrupts executing command
+	^D sends end-of-file; closes window if typed at >>> prompt
+
+    Command history:
+
+	Alt-p retrieves previous command matching what you have typed
+	Alt-n retrieves next
+	Return while on any previous command retrieves that command
+	Alt-/ (Expand word) is also useful here
+
+Syntax colors:
+
+	The coloring is applied in a background "thread", so you may
+	occasionally see uncolorized text.  To change the color
+	scheme, edit the ColorPrefs class in IdlePrefs.py.
+
+    Python syntax colors:
+
+	Keywords	orange
+	Strings		green
+	Comments	red
+	Definitions	blue
+
+    Shell colors:
+
+	Console output	brown
+	stdout		blue
+	stderr		dark green
+	stdin		black
+
+Other preferences:
+
+	To change the font on Windows, open EditorWindow.py and change
+	    text['font'] = ("lucida console", 8)
+	to, e.g.,
+	    text['font'] = ("courier new", 10)
+
+	To change keyboard bindings, edit Bindings.py
+
+Command line usage:
+
+	idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
+
+	-c command  run this command
+	-d          enable debugger
+	-e          edit mode; arguments are files to be edited
+	-s          run $IDLESTARTUP or $PYTHONSTARTUP first
+	-t title    set title of shell window
+
+	If there are arguments:
+
+	    If -e is used, arguments are files opened for editing and
+	    sys.argv reflects the arguments passed to IDLE itself.
+
+	    Otherwise, if -c is used, all arguments are placed in
+	    sys.argv[1:...], with sys.argv[0] set to '-c'.
+
+	    Otherwise, if neither -e nor -c is used, the first
+	    argument is a script which is executed with the remaining
+	    arguments in sys.argv[1:...]  and sys.argv[0] set to the
+	    script name.  If the script name is '-', no script is
+	    executed but an interactive Python session is started; the
+	    arguments are still available in sys.argv.