diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c5a0c0a6afabc1d9259140e1b9b5951aa864c1b0..f264b29651a4f04974f136ad1cc31b0d83c45912 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
+
+	* check.c, expr.c, resolve.c, trans-common.c,
+	trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos.
+
 2006-05-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
 	PR fortran/19777
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
index 947bcdccc955a876f49f97d7d069140c1a8e0713..c68e59c1cf8df54c3f5a98e0fef66aad94817fe2 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -1052,7 +1052,7 @@ gfc_check_ichar_iachar (gfc_expr * c)
       if (!ref)
 	{
           /* Check that the argument is length one.  Non-constant lengths
-	     can't be checked here, so assume thay are ok.  */
+	     can't be checked here, so assume they are ok.  */
 	  if (c->ts.cl && c->ts.cl->length)
 	    {
 	      /* If we already have a length for this expression then use it.  */
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 5ecc829f1cbd905857190db0e8649b3fa68495ef..84dcf68fbf9c5ceb08cd8202468b817fba9f8d99 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -1879,7 +1879,7 @@ gfc_check_assign (gfc_expr * lvalue, gfc_expr * rvalue, int conform)
       if (sym->attr.use_assoc)
 	bad_proc = true;
 
-      /* (ii) The assignement is in the main program; or  */
+      /* (ii) The assignment is in the main program; or  */
       if (gfc_current_ns->proc_name->attr.is_main_program)
 	bad_proc = true;
 
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 660f1c0ef80dbca4e42a56baa4924aeda5595a47..c662947fb160ca4209fc4b811c332a4e3742af7c 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -4946,7 +4946,7 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
 	}
     }
 
-  /* An external symbol may not have an intializer because it is taken to be
+  /* An external symbol may not have an initializer because it is taken to be
      a procedure.  */
   if (sym->attr.external && sym->value)
     {
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index bf19d12c91fdf7a81e9b66a81e836af2bb495071..856eeeb51f19ef4f0dd25ed21210c372d05fe911 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -84,7 +84,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
    a diagonal matrix in the matrix formulation.
  
    Each segment is described by a chain of segment_info structures.  Each
-   segment_info structure describes the extents of a single varible within
+   segment_info structure describes the extents of a single variable within
    the segment.  This list is maintained in the order the elements are
    positioned withing the segment.  If two elements have the same starting
    offset the smaller will come first.  If they also have the same size their
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 5db166b83d3d1ac25a5d62e2b8e28373f649693c..9575a318c7ad4401ecc52b45e28d89d5d971c133 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -329,7 +329,7 @@ build_fix_expr (stmtblock_t * pblock, tree arg, tree type,
 /* Round a real value using the specified rounding mode.
    We use a temporary integer of that same kind size as the result.
    Values larger than those that can be represented by this kind are
-   unchanged, as thay will not be accurate enough to represent the
+   unchanged, as they will not be accurate enough to represent the
    rounding.
     huge = HUGE (KIND (a))
     aint (a) = ((a > huge) || (a < -huge)) ? a : (real)(int)a
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index ab7d5a5eb6075667ee10877730424a97634565d5..562e6f1462b983a1b50640fc7db6e9e61fcb64fc 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -1150,7 +1150,7 @@ gfc_trans_integer_select (gfc_code * code)
 		    internal representation of CASE(N).
 
 		 In the first and second case, we need to set a value for
-		 high.  In the thirth case, we don't because the GCC middle
+		 high.  In the third case, we don't because the GCC middle
 		 end represents a single case value by just letting high be
 		 a NULL_TREE.  We can't do that because we need to be able
 		 to represent unbounded cases.  */
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index 3b5c1a884a375c7d2bf4ff3d7d5eaccea88f3c5a..7c481505d207ff91974cb74074199237b0130137 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -1721,7 +1721,7 @@ gfc_get_function_type (gfc_symbol * sym)
 	     this code was bad, except that it would give incorrect results.
 
 	     Contained procedures could pass by value as these are never
-	     used without an explicit interface, and connot be passed as
+	     used without an explicit interface, and cannot be passed as
 	     actual parameters for a dummy procedure.  */
 	  if (arg->ts.type == BT_CHARACTER)
             nstr++;