diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 109b2d5..e9a9b02 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -38,7 +38,7 @@
 bpo-37321: Both subprocess connection error messages now refer to
 the 'Startup failure' section of the IDLE doc.
 
-bpo-37039: Adjust "Zoom Height" to individual screens by momemtarily
+bpo-37039: Adjust "Zoom Height" to individual screens by momentarily
 maximizing the window on first use with a particular screen.  Changing
 screen settings may invalidate the saved height.  While a window is
 maximized, "Zoom Height" has no effect.
diff --git a/Lib/idlelib/README.txt b/Lib/idlelib/README.txt
index 8912f39..42c3506 100644
--- a/Lib/idlelib/README.txt
+++ b/Lib/idlelib/README.txt
@@ -68,7 +68,7 @@
 query.py          # Query user for information
 redirector.py     # Intercept widget subcommands (for percolator) (nim).
 replace.py        # Search and replace pattern in text.
-rpc.py            # Commuicate between idle and user processes (nim).
+rpc.py            # Communicate between idle and user processes (nim).
 rstrip.py         # Strip trailing whitespace.
 run.py            # Manage user code execution subprocess.
 runscript.py      # Check and run user code.
@@ -97,7 +97,7 @@
 CREDITS.txt  # not maintained, displayed by About IDLE
 HISTORY.txt  # NEWS up to July 2001
 NEWS.txt     # commits, displayed by About IDLE
-README.txt   # this file, displeyed by About IDLE
+README.txt   # this file, displayed by About IDLE
 TODO.txt     # needs review
 extend.txt   # about writing extensions
 help.html    # copy of idle.html in docs, displayed by IDLE Help
@@ -166,7 +166,7 @@
 
 Debug (Shell only)
   Go to File/Line
-  debugger         # debugger, debugger_r, PyShell.toggle_debuger
+  debugger         # debugger, debugger_r, PyShell.toggle_debugger
   Stack Viewer     # stackviewer, PyShell.open_stack_viewer
   Auto-open Stack Viewer  # stackviewer
 
diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index bba17d3..df21658 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -1793,7 +1793,7 @@
         """Return frame of widgets for General tab.
 
         Enable users to provisionally change general options. Function
-        load_general_cfg intializes tk variables and helplist using
+        load_general_cfg initializes tk variables and helplist using
         idleConf.  Radiobuttons startup_shell_on and startup_editor_on
         set var startup_edit. Radiobuttons save_ask_on and save_auto_on
         set var autosave. Entry boxes win_width_int and win_height_int
diff --git a/Lib/idlelib/history.py b/Lib/idlelib/history.py
index 56f53a0..ad44a96 100644
--- a/Lib/idlelib/history.py
+++ b/Lib/idlelib/history.py
@@ -39,7 +39,7 @@
         return "break"
 
     def fetch(self, reverse):
-        '''Fetch statememt and replace current line in text widget.
+        '''Fetch statement and replace current line in text widget.
 
         Set prefix and pointer as needed for successive fetches.
         Reset them to None, None when returning to the start line.
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py
index 479b84a..f7154e6 100644
--- a/Lib/idlelib/idle_test/test_pyparse.py
+++ b/Lib/idlelib/idle_test/test_pyparse.py
@@ -206,8 +206,8 @@
                                            'openbracket', 'bracketing'])
         tests = (
             TestInfo('', 0, 0, '', None, ((0, 0),)),
-            TestInfo("'''This is a multiline continutation docstring.\n\n",
-                     0, 49, "'", None, ((0, 0), (0, 1), (49, 0))),
+            TestInfo("'''This is a multiline continuation docstring.\n\n",
+                     0, 48, "'", None, ((0, 0), (0, 1), (48, 0))),
             TestInfo(' # Comment\\\n',
                      0, 12, '', None, ((0, 0), (1, 1), (12, 0))),
             # A comment without a space is a special case
diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py
index 81e7f53..feb57cb 100644
--- a/Lib/idlelib/pyparse.py
+++ b/Lib/idlelib/pyparse.py
@@ -575,7 +575,7 @@
         return code[i:j]
 
     def is_block_opener(self):
-        "Return True if the last interesting statemtent opens a block."
+        "Return True if the last interesting statement opens a block."
         self._study2()
         return self.lastch == ':'
 
