diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in
index 58d0638f72e4c180c7ccbb4c49df0f242eba1700..3d856eb8d5f1a4260ee533d581bc1b0b07bc29fe 100644
--- a/libobjc/Makefile.in
+++ b/libobjc/Makefile.in
@@ -59,7 +59,7 @@ MULTIDO = true
 MULTICLEAN = true
 
 # Not configured per top-level version, since that doesn't get passed
-# down at configure time, but overrridden by the top-level install
+# down at configure time, but overridden by the top-level install
 # target.
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
diff --git a/libobjc/encoding.c b/libobjc/encoding.c
index 7a2d2abe6d142da6ff8a468b91075875b2cc312e..f4fc4f452e48f4c2228f74b8eca984f754d48ea7 100644
--- a/libobjc/encoding.c
+++ b/libobjc/encoding.c
@@ -151,7 +151,7 @@ static int __attribute__ ((__unused__)) not_target_flags = 0;
 #  undef TARGET_ALIGN_NATURAL
 #  define TARGET_ALIGN_NATURAL 1
 # endif
-/* On Darwin32, we need to recurse until we find the starting stuct type.  */
+/* On Darwin32, we need to recurse until we find the starting struct type.  */
 static int 
 _darwin_rs6000_special_round_type_align (const char *struc, int comp, int spec)
 {
@@ -186,7 +186,7 @@ _darwin_rs6000_special_round_type_align (const char *struc, int comp, int spec)
 
 /*  FIXME: while this file has no business including tm.h, this
     definitely has no business defining this macro but it
-    is only way around without really rewritting this file,
+    is only way around without really rewriting this file,
     should look after the branch of 3.4 to fix this.   */
 #define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED)	\
   ({ const char *_fields = TYPE_FIELDS (STRUCT);			\
diff --git a/libobjc/exception.c b/libobjc/exception.c
index f051c5f9524dbf7776e9060eb3cc64c0610183be..dce576e8559b038ce7e5f1740c982d41fe3a549f 100644
--- a/libobjc/exception.c
+++ b/libobjc/exception.c
@@ -42,7 +42,7 @@ is_kind_of_exception_matcher (Class catch_class, id exception)
     return 1;
 
   /* If exception is nil (eg, @throw nil;), then it can only be
-     catched by a catch-all (eg, @catch (id object)).  */
+     caught by a catch-all (eg, @catch (id object)).  */
   if (exception != nil)
     {
       Class c;
@@ -384,7 +384,7 @@ PERSONALITY_FUNCTION (int version,
 #endif /* __USING_SJLJ_EXCEPTIONS__  */
 
   /* If ip is not present in the table, C++ would call terminate.  */
-  /* ??? As with Java, it's perhaps better to tweek the LSDA to that
+  /* ??? As with Java, it's perhaps better to tweak the LSDA to that
      no-action is mapped to no-entry.  */
   CONTINUE_UNWINDING;
 
diff --git a/libobjc/hash.c b/libobjc/hash.c
index e216c8cdf3b99530dd27841a2e6087549d3bb256..e0ecf30e02447c1a72c957262641580684f42d0d 100644
--- a/libobjc/hash.c
+++ b/libobjc/hash.c
@@ -222,7 +222,7 @@ objc_hash_next (cache_ptr cache, node_ptr node)
       if (node->next)
 	{
 	  /* There is a node which follows the last node returned.
-	     Step to that node and retun it.  */
+	     Step to that node and return it.  */
 	  return node->next;
 	}
       else
diff --git a/libobjc/init.c b/libobjc/init.c
index 6216546084b87cf52c615dd80d38e37bd781509b..9f8bafb8ee3ffbc26db3c4ab79d8b7086777b9d8 100644
--- a/libobjc/init.c
+++ b/libobjc/init.c
@@ -851,7 +851,7 @@ __objc_create_classes_tree (struct objc_module *module)
 
   /* Now iterate over "claimed" categories too (ie, categories that
      extend a class that has already been loaded by the runtime), and
-     insert them in the classes tree hiearchy too.  Otherwise, if you
+     insert them in the classes tree hierarchy too.  Otherwise, if you
      add a category, its +load method would not be called if the class
      is already loaded in the runtime.  It the category is
      "unclaimed", ie, we haven't loaded the main class yet, postpone
diff --git a/libobjc/objc-private/objc-list.h b/libobjc/objc-private/objc-list.h
index 44c5f0d092b037bc1cf260903bb65a37dcdea0b5..01443aab310cddb4f07ce99d19c88d3f6c48a27d 100644
--- a/libobjc/objc-private/objc-list.h
+++ b/libobjc/objc-private/objc-list.h
@@ -62,7 +62,7 @@ list_remove_head (struct objc_list** list)
     }
   else
     {
-      /* Inly one element in list.  */
+      /* Only one element in list.  */
       objc_free (*list);
       (*list) = 0;
     }
diff --git a/libobjc/sendmsg.c b/libobjc/sendmsg.c
index 65bc250ad90ccbd287e6d4091238015ea87254b2..c8a10cc9c97224fa695827ca6408572a312d4f73 100644
--- a/libobjc/sendmsg.c
+++ b/libobjc/sendmsg.c
@@ -1007,7 +1007,7 @@ __objc_install_dtable_for_class (Class cls)
     return;
 
   /* We have this function cache the implementation pointers for
-     _objc_get_prepared_imp but the dispatch table won't be initilized
+     _objc_get_prepared_imp but the dispatch table won't be initialized
      until __objc_send_initialize completes.  */
   __objc_prepare_dtable_for_class (cls);
 
diff --git a/libobjc/thr.c b/libobjc/thr.c
index 58c4bc3ab017f5691dccad4bd230adadb7d5d1a5..aff4c2d99c637386f1a8c410368722e16937393e 100644
--- a/libobjc/thr.c
+++ b/libobjc/thr.c
@@ -205,7 +205,7 @@ objc_thread_yield (void)
   __gthread_objc_thread_yield ();
 }
 
-/* Terminate the current tread.  Doesn't return.  Actually, if it
+/* Terminate the current thread.  Doesn't return.  Actually, if it
    failed returns -1.  */
 int
 objc_thread_exit (void)