When the element <language> has "t" as its content, the use of the
 input method is not limited to one language.  When the content is
 other than "t", it must be a valid code in ISO639-1, two-character
-code or ISO639-2, three charcter code for the names of languages.
+code or ISO639-2, three character code for the names of languages.
 
 When the element <name> has "nil" as its content, the input method is
 not standalone, but is expected to be used in other input methods.  In
 customized by a user, it must be declared here.  The declaration can
 be used in two ways.  One is to introduce a new variable.  In that
 case, the <value> element in <variable> must not be omitted.  Another
-is to inherit the variable from what declared in "global.mim", and to
+is to inherit the variable from what declared in "global.mimx", and to
 give the different default value and/or to make the variable
 customizable specially for the current input method.  In the latter
 case, <value> can be omitted.
 @endverbatim
 
 Predefined-variables are variables whose "type" attribute has the
-value "predefiend".  When "id" sttribute has the value "handled-keys",
+value "predefined".  When "id" attribute has the value "handled-keys",
 the value of the variable is the number of handled keys at that
-moment.  If the "id" attrubyte has the value
+moment.  If the "id" attribute has the value
 "predefined-surround-text-flag", the value of the variable is -1
 if surrounding text is supported, and -2 if not.
 
 <variable-reference id="handled-keys" type="predefined"/>
 #endif
 
-This code referes to a predefined varialbe "handled-keys".
+This code refers to a predefined variable "handled-keys".
 
 @verbatim
 
 customized by a user, it must be declared here.  Like <variable-list>,
 the declaration can be used in two ways.  One is to introduce a new
 command.  In that case, the <keyseq> element must appear in <command>.
-Another is to inherit the command from what declared in "global.mim",
+Another is to inherit the command from what declared in "global.mimx",
 and to give the different key binding and/or to make the command
 customizable specially for the current input method.  In the latter
 case, <keyseq> can be omitted.
 
 @endverbatim
 
-The elemnt <macro> bundles and names a set of <action>s.  The
+The element <macro> bundles and names a set of <action>s.  The
 attribute "id" gives the name of a <macro>, and a macro is referred
 with this attribute.
 
 @endverbatim
 
 Predefined markers start with @@.  @@0, @@1, ... , @@9 mark the 0th, 1st,
-2nd,... 9th position respetively. @@previous_candidate_list mark the
+2nd,... 9th position respectively. @@previous_candidate_list mark the
 previous position where a candidate list changes.
 @@next_candidate_list mark the next position where a candidate list
 changes.
  <move-to-marker position="T"/>
 #endif
 
-This code moves the marker to the usr defined position T.
+This code moves the marker to the user defined position T.
 
 @verbatim
 
 used in the element <select>.  
 
 @@0, @@1, ... , @@9 specify the 0th, 1st, ... 9th position
-respetively.  @@previous means the previous position, and if the
+respectively.  @@previous means the previous position, and if the
 current candidate is the first one in the current candidate group,
 this value means the last candidate in the previous candidate
 group. @@next means the next position, and if the current candidate is
 <keyseq> (or <command>) and <action>s the input
 method driver should take.  When the <action> is to
 <insert> an appropriate character, for example, the <rule>
-defines the mapping between the input key on the keyboad and the
+defines the mapping between the input key on the keyboard and the
 character to appear on the screen.
 
 #if EXAMPLE_CODE
 <command-reference id="command-start"/>
 #endif
 
-This code calls command "commad-start".
+This code calls command "command-start".
 
 @verbatim
 
 
 The element <set>, <add>, <sub>, <mul> and
 <div> sets, increments, decrements, multiplies and divides the
-value of the variable respecrively.
+value of the variable respectively.
 
 #if EXAMPLE_CODE
 <set id="MAX-COUNT">
 by the insertion are automatically relocated.
 
 The attribute "string" specifies a M-text to be inserted.  The
-attriubute "character" specifies the code of a character to be
+attribute "character" specifies the code of a character to be
 inserted.  The attribute "character-or-string" must have a variable as
 its value and <insert> inserts the value of the specified variable, if
 it is a valid character code or a M-text.
 These codes insert the same character "รก".
 
 When the element <candidates> is given, each character in the content
-of the element <candidtes> is a candidate to be inserted.  <insert>
+of the element <candidates> is a candidate to be inserted.  <insert>
 inserts the first candidate before the current position.  The inserted
 character is associated with the list of candidates and the
 information indicating the currently selected candidate. 
 There are three <action>s for deleting characters.  The marker
 positions affected by these <action>s are automatically relocated.
 
-The element <delet-to-marker> deletes characters between the current
+The element <delete-to-marker> deletes characters between the current
 position and the marker position.  
 
 #if EXAMPLE_CODE
 The element <delete-n-characters> treats the value of the attribute
 "n" as the number of characters to be deleted, and executes the
 deletion.  If the value N is negative, the preceding N characters from
-the current position are deleted.  If positive, folliwing N characters
+the current position are deleted.  If positive, following N characters
 are deleted. 
 
 #if EXAMPLE_CODE
 represents a list of actions to take. 
 
 The value of the attribute "id" specifies an external module.  It must
-appear in the elemenet <module-list>. The element
+appear in the element <module-list>. The element
 <function-reference> specifies a function to be called.  It must
-appear in the elemenet <module-list>.
+appear in the element <module-list>.
 
 The function can be called with an argument of the type (#MPlist
 *).  The key of the first element of the list is #Mt and its value is 
 @endverbatim
 
 An <expr>ession can be 
- @li a zero or more <expr>essions conbined with an operator,
+ @li a zero or more <expr>essions combined with an operator,
  @li an integer value. 
  @li a character at a specified position. 
  @li a variable.  
 
 @endverbatim
 
-These are the operatiors that can appear in <expr>essions.  The
+These are the operators that can appear in <expr>essions.  The
 operators @c +, @c -, @c *, @c / does arithmetics.  @c |, @c &, @c
 ! are OR, AND, NOT operators.  The operators @c =, @c <, @c >,
 @c <=, @c >= take two arguments and compare them.
 selected and its <saction>s are executed.  When "map-join" is
 selected, the state is shift to "state-join".  The state "state-join"
 has one branch for input sequences from "map-consonant" and one
-catch-all-branch for everything else, both shiting the state to
+catch-all-branch for everything else, both shifting the state to
 "state-init".
 
 @verbatim