diff --git a/doc/atari.sgml b/doc/atari.sgml
index ff41d0bb4..170ffd5fb 100644
--- a/doc/atari.sgml
+++ b/doc/atari.sgml
@@ -117,7 +117,7 @@ Special locations:
 The startup code rearranges the memory as follows:
 
 <enum>
-<item>Sceen memory and display list are moved below the program start address.
+<item>Screen memory and display list are moved below the program start address.
 <item>The ROM is disabled, making the memory in the areas &lsqb;&dollar;C000-&dollar;CFFF&rsqb;
 and &lsqb;&dollar;D800-&dollar;FFF9&rsqb; available.
 <item>Character generator data is copied from ROM to the CHARGEN location specified in the
diff --git a/doc/ca65.sgml b/doc/ca65.sgml
index 0638ab08c..309fbf28d 100644
--- a/doc/ca65.sgml
+++ b/doc/ca65.sgml
@@ -3724,7 +3724,7 @@ See: <tt><ref id=".ASCIIZ" name=".ASCIIZ"></tt>,<tt><ref id=".BYTE" name=".BYTE"
 
   <tt/.PUSHCHARMAP/ allows together with <tt><ref id=".POPCHARMAP"
   name=".POPCHARMAP"></tt> to switch to another character mapping and to restore the old
-  characther mapping later, without knowledge of the current mapping.
+  character mapping later, without knowledge of the current mapping.
 
   The assembler will print an error message if the character mapping stack is already full,
   when this command is issued.
diff --git a/doc/cc65.sgml b/doc/cc65.sgml
index b20e05cc6..df58a0a95 100644
--- a/doc/cc65.sgml
+++ b/doc/cc65.sgml
@@ -1673,7 +1673,7 @@ This is the original compiler copyright:
 
       Anyone may copy or redistribute these programs, provided that:
 
-  1:  You don't charge anything for the copy.  It is permissable to
+  1:  You don't charge anything for the copy.  It is permissible to
       charge a nominal fee for media, etc.
 
   2:  All source code and documentation for the programs is made
diff --git a/doc/funcref.sgml b/doc/funcref.sgml
index e6cb42a0f..4dff14dd3 100644
--- a/doc/funcref.sgml
+++ b/doc/funcref.sgml
@@ -3513,7 +3513,7 @@ extended memory that should be supported. There is no autodetect capability.
 <tag/Declaration/<tt/void* __fastcall__ em_map (unsigned page);/
 <tag/Description/The function maps one page of extended memory into linear
 memory and returns a pointer to the page frame. Depending on the hardware
-and driver, the data is either mapped into the address space or transfered
+and driver, the data is either mapped into the address space or transferred
 into a buffer. If you don't need the actual contents of the page (for example
 because you're going to overwrite it completely), it is better to call
 <tt/<ref id="em_use" name="em_use">/ instead. <tt/em_use/ will not transfer the
@@ -3728,7 +3728,7 @@ switching the CPU into double clock mode.
 <tag/Function/Return the end-of-file indicator of a stream.
 <tag/Header/<tt/<ref id="stdio.h" name="stdio.h">/
 <tag/Declaration/<tt/int __fastcall__ feof (FILE* f);/
-<tag/Description/<tt/feof/ tests the end-of-file indicator ofthe stream
+<tag/Description/<tt/feof/ tests the end-of-file indicator of the stream
 <tt/f/, and returns a non zero value if it is set.
 <tag/Notes/<itemize>
 <item>The indicator is set only after a read past the end of a file is
@@ -4172,7 +4172,7 @@ const char* optstring);/
 is a string that contains command line option characters. If a character in
 <tt/optstring/ is followed by a colon, the option requires an argument. An
 option on the command line is recognized if it is one of the option characters
-preceeded by a '-'.
+preceded by a '-'.
 <tt/getopt/ must be called repeatedly. It will return each option character
 found on the command line and <tt/EOF/ (-1) if there is no other option. An
 option argument is placed in <tt/optarg/, the index of the next element on the
@@ -5020,7 +5020,7 @@ always be the same.
 <tag/Header/<tt/<ref id="setjmp.h" name="setjmp.h">/
 <tag/Declaration/<tt/void __fastcall__ longjmp (jmp_buf buf, int retval);/
 <tag/Description/The <tt/longjmp/ function restores a program context from the
-data in <tt/buf/, which must have been set by a preceeding call to
+data in <tt/buf/, which must have been set by a preceding call to
 <tt/<ref id="setjmp" name="setjmp">/. Program execution continues as if the
 call to <tt/<ref id="setjmp" name="setjmp">/ has just returned the value
 <tt/retval/.
@@ -5664,7 +5664,7 @@ cc65 allows to pass this argument, it is ignored.
 <tag/Function/Open a directory.
 <tag/Header/<tt/<ref id="dirent.h" name="dirent.h">/
 <tag/Declaration/<tt/DIR* __fastcall__ opendir (const char* name);/
-<tag/Description/<tt/opendir/ opens a directory and returns the direcory
+<tag/Description/<tt/opendir/ opens a directory and returns the directory
 descriptor associated with it. On error, NULL is returned and an error code is
 stored in <tt/errno/.
 <tag/Notes/<itemize>
@@ -6863,7 +6863,7 @@ be used in presence of a prototype.
 
 <quote>
 <descrip>
-<tag/Function/Concatentate two strings.
+<tag/Function/Concatenate two strings.
 <tag/Header/<tt/<ref id="string.h" name="string.h">/
 <tag/Declaration/<tt/char* __fastcall__ strcat (char* s1, const char* s2);/
 <tag/Description/The <tt/strcat/ function appends a copy of the string
@@ -7189,7 +7189,7 @@ be used in presence of a prototype.
 
 <quote>
 <descrip>
-<tag/Function/Concatentate two strings.
+<tag/Function/Concatenate two strings.
 <tag/Header/<tt/<ref id="string.h" name="string.h">/
 <tag/Declaration/<tt/char* __fastcall__ strncat (char* s1, const char* s2, size_t n);/
 <tag/Description/The <tt/strncat/ function appends not more than n characters
@@ -7314,7 +7314,7 @@ be used in presence of a prototype.
 <tag/Header/<tt/<ref id="string.h" name="string.h">/
 <tag/Declaration/<tt/char* __fastcall__ strpbrk (const char* str, const char* set);/
 <tag/Description/<tt/strpbrk()/ searches within <tt/str/ for the first
-occurance of any character from <tt/set/.  It returns a pointer to that
+occurrence of any character from <tt/set/.  It returns a pointer to that
 character if found; otherwise, it returns <tt/NULL/.
 <tag/Notes/<itemize>
 <item>The function is available only as a fastcall function;
@@ -7418,7 +7418,7 @@ be used in presence of a prototype.
 <tag/Function/Find a substring.
 <tag/Header/<tt/<ref id="string.h" name="string.h">/
 <tag/Declaration/<tt/char* __fastcall__ strstr (const char* str, const char* substr);/
-<tag/Description/<tt/strstr/ searches for the first occurance of the string
+<tag/Description/<tt/strstr/ searches for the first occurrence of the string
 <tt/substr/ within <tt/str/. If found, it returns a pointer to the copy,
 otherwise it returns <tt/NULL/.
 <tag/Notes/<itemize>
@@ -7485,7 +7485,7 @@ the behaviour is undefined.
 <item>If <tt/n/ is zero, <tt/s1/ may be a NULL pointer.
 <item>The function is only available as fastcall function, so it may only
 be used in presence of a prototype.
-<item>Since cc65 doesn't support different charcter sets, <tt/strxfrm/ will
+<item>Since cc65 doesn't support different character sets, <tt/strxfrm/ will
 just copy s2 to s1 using <tt><ref id="strncpy" name="strncpy"></tt>.
 </itemize>
 <tag/Availability/ISO 9899
diff --git a/doc/smc.sgml b/doc/smc.sgml
index 88cd6dc14..71de20208 100644
--- a/doc/smc.sgml
+++ b/doc/smc.sgml
@@ -257,7 +257,7 @@ SMC LoadDefault, { LDX #25 }
   <label id="Load value">
   <tag><tt>SMC_LoadValue label (, register)</tt></tag>
 
-  Retreives the value of a SMC line.
+  Retrieves the value of a SMC line.
 
   Example:
 <tscreen><verb>
diff --git a/doc/telestrat.sgml b/doc/telestrat.sgml
index eac341880..385bd69f9 100644
--- a/doc/telestrat.sgml
+++ b/doc/telestrat.sgml
@@ -79,7 +79,7 @@ in Telemon, there is no way to load a binary easily.
 
 Stratsed (the Telestrat operating system) handles files management. Stratsed
 is loaded to memory from floppy disk. Stratsed vector are declared in asminc/telestrat.inc.
-But, reverse engineering is required to find how theses vectors works. Please, note that
+But, reverse engineering is required to find how these vectors works. Please, note that
 Stratsed is located in overlay memory (bank 0)
 
 There is no tool to insert a binary in a Stratsed floppy disk.
@@ -194,7 +194,7 @@ if you get input from keyboard by conio cgetc function, you will get direction f
 
 Anyway, if you don't want to use ROM, you can use joysticks standard drivers in your code. 
 
-The standard driver manages two joysticks. Only one button is managed for theses joysticks. 
+The standard driver manages two joysticks. Only one button is managed for these joysticks. 
 
 Telestrat can handle one button for the left port, and three buttons for the right port (but this port was designed for a mouse).