Fix typos.
diff --git a/src/hb-blob.cc b/src/hb-blob.cc
index 4cf6d1e..8046012 100644
--- a/src/hb-blob.cc
+++ b/src/hb-blob.cc
@@ -222,7 +222,7 @@
  * hb_blob_destroy: (skip)
  * @blob: a blob.
  *
- * Descreases the reference count on @blob, and if it reaches zero, destroys
+ * Decreases the reference count on @blob, and if it reaches zero, destroys
  * @blob, freeing all memory, possibly calling the destroy-callback the blob
  * was created for if it has not been called already.
  *
diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index 9148ef3..a72376d 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -93,7 +93,7 @@
   hb_buffer_flags_t flags; /* BOT / EOT / etc. */
   hb_buffer_cluster_level_t cluster_level;
   hb_codepoint_t replacement; /* U+FFFD or something else. */
-  hb_buffer_scratch_flags_t scratch_flags; /* Have space-flallback, etc. */
+  hb_buffer_scratch_flags_t scratch_flags; /* Have space-fallback, etc. */
   unsigned int max_len; /* Maximum allowed len. */
   int max_ops; /* Maximum allowed operations. */
 
diff --git a/src/hb-common.cc b/src/hb-common.cc
index 1d0e726..d1fcf79 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -879,7 +879,7 @@
                    parse_bool (pp, end, &feature->value);
   /* CSS doesn't use equal-sign between tag and value.
    * If there was an equal-sign, then there *must* be a value.
-   * A value without an eqaul-sign is ok, but not required. */
+   * A value without an equal-sign is ok, but not required. */
   return !had_equal || had_value;
 }
 
diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc
index 905c9f7..255f205 100644
--- a/src/hb-coretext.cc
+++ b/src/hb-coretext.cc
@@ -1218,7 +1218,7 @@
     }
 
     /* Mac OS 10.6 doesn't have kCTTypesetterOptionForcedEmbeddingLevel,
-     * or if it does, it doesn't resepct it.  So we get runs with wrong
+     * or if it does, it doesn't respect it.  So we get runs with wrong
      * directions.  As such, disable the assert...  It wouldn't crash, but
      * cursoring will be off...
      *
diff --git a/src/hb-directwrite.cc b/src/hb-directwrite.cc
index 0674ef9..5429255 100644
--- a/src/hb-directwrite.cc
+++ b/src/hb-directwrite.cc
@@ -370,7 +370,7 @@
   {
     if (textPosition == 0 || textPosition > mTextLength) {
       // Either there is no text before here (== 0), or this
-      // is an invalid position. The query is considered valid thouh.
+      // is an invalid position. The query is considered valid though.
       *textString = nullptr;
       *textLength = 0;
     }
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 1c526cf..fc4b112 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -58,7 +58,7 @@
  *
  *   - In the future, we should add constructors to create fonts in font space?
  *
- *   - FT_Load_Glyph() is exteremely costly.  Do something about it?
+ *   - FT_Load_Glyph() is extremely costly.  Do something about it?
  */
 
 
diff --git a/src/hb-graphite2.cc b/src/hb-graphite2.cc
index 62aaae9..3b55b47 100644
--- a/src/hb-graphite2.cc
+++ b/src/hb-graphite2.cc
@@ -80,7 +80,7 @@
     p->tag = tag;
 
     /* TODO Not thread-safe, but fairly harmless.
-     * We can do the double-chcked pointer cmpexch thing here. */
+     * We can do the double-checked pointer cmpexch thing here. */
     p->next = face_data->tlist;
     face_data->tlist = p;
   }
diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh
index 31c436a..8bf69a3 100644
--- a/src/hb-ot-layout-common-private.hh
+++ b/src/hb-ot-layout-common-private.hh
@@ -299,7 +299,7 @@
      * better.
      *
      * Assume that the offset to the size feature is according to specification,
-     * and make the following value checks. If it fails, assume the the size
+     * and make the following value checks. If it fails, assume the size
      * feature is calculated as versions of MakeOTF before the AFDKO 2.0 built it.
      * If this fails, reject the 'size' feature. The older makeOTF's calculated the
      * offset from the beginning of the FeatureList table, rather than from the