diff --git a/system/ulib/fbl/include/fbl/atomic.h b/system/ulib/fbl/include/fbl/atomic.h
index 4806764..611e92d 100644
--- a/system/ulib/fbl/include/fbl/atomic.h
+++ b/system/ulib/fbl/include/fbl/atomic.h
@@ -431,7 +431,7 @@
 // This function is _not_ a substitute for constructing the atomic<T>:
 // it does not begin the lifetime of an atomic<T> object.
 //
-// Using the value constructors is preferrable to using this
+// Using the value constructors is preferable to using this
 // function. This function exists because calling the value
 // constructor is occasionally more awkward than separating
 // construction from initializing.
@@ -456,7 +456,7 @@
 // Because the barrier applies to all memory rather than a particular
 // location, it is a strong guarantee for the given memory order than
 // the corresponding atomic operation on a memory location, and may be
-// more expenisve.
+// more expensive.
 inline void atomic_thread_fence(memory_order order = memory_order_seq_cst) {
     __atomic_thread_fence(order);
 }
diff --git a/system/ulib/fbl/include/fbl/function.h b/system/ulib/fbl/include/fbl/function.h
index 8e8965f..a828f9a 100644
--- a/system/ulib/fbl/include/fbl/function.h
+++ b/system/ulib/fbl/include/fbl/function.h
@@ -325,7 +325,7 @@
 
 // The default size allowance for callable objects which can be inlined within
 // a function object.  This default allows for inline storage of callables
-// consiting of a function pointer and an object pointer (or similar callables
+// consisting of a function pointer and an object pointer (or similar callables
 // of the same size).
 constexpr size_t kDefaultInlineCallableSize = sizeof(void*) * 2;
 
diff --git a/system/ulib/fbl/include/fbl/intrusive_wavl_tree.h b/system/ulib/fbl/include/fbl/intrusive_wavl_tree.h
index 333fa9f..a3bbd92 100644
--- a/system/ulib/fbl/include/fbl/intrusive_wavl_tree.h
+++ b/system/ulib/fbl/include/fbl/intrusive_wavl_tree.h
@@ -636,10 +636,10 @@
         void advance() {
             ZX_DEBUG_ASSERT(internal::valid_sentinel_ptr(node_));
 
-            // Find the next node in the ordered sequecnce.
+            // Find the next node in the ordered sequence.
             // key.  This will be either...
             // 1) The RL-most child of our LR-hand sub-tree.
-            // 2) Our first ancestor for which we are a LR-hand descendent.
+            // 2) Our first ancestor for which we are a LR-hand descendant.
             auto ns = &NodeTraits::node_state(*node_);
             auto rl_child = LRTraits::RLChild(*ns);
             if (rl_child != nullptr) {
@@ -724,9 +724,9 @@
         while (true) {
             auto parent_key = KeyTraits::GetKey(*parent);
 
-            // Looks like we collided with an object in the colleciton which has
+            // Looks like we collided with an object in the collection which has
             // the same key as the object being inserted.  This is only allowed
-            // during an insert_or_find opertaion (collision is non-null).
+            // during an insert_or_find operation (collision is non-null).
             // Assert this in debug builds.  If this is an insert_or_find
             // operation, fill out the collision [out] parameter so the called
             // knows which object he/she collided with.  Either way, do not
diff --git a/system/ulib/fbl/include/fbl/macros.h b/system/ulib/fbl/include/fbl/macros.h
index ca6315c..ba27640 100644
--- a/system/ulib/fbl/include/fbl/macros.h
+++ b/system/ulib/fbl/include/fbl/macros.h
@@ -37,7 +37,7 @@
 // Example:
 //
 // DECLARE_HAS_MEMBER_FN(has_bar, Bar);
-// template <typname T>
+// template <typename T>
 // class Foo {
 //   static_assert(has_bar<T>::value, "Foo classes must implement Bar()!");
 //   // TODO: use 'if constexpr' to avoid this next static_assert once c++17
diff --git a/system/ulib/fbl/include/fbl/mutex.h b/system/ulib/fbl/include/fbl/mutex.h
index 1eb002e..7b253dc 100644
--- a/system/ulib/fbl/include/fbl/mutex.h
+++ b/system/ulib/fbl/include/fbl/mutex.h
@@ -12,7 +12,7 @@
 // Notes about class Mutex
 //
 // Mutex is a C++ helper class intended to wrap a mutex-style synchronization
-// primative and provide a common interface for library code which is intended
+// primitive and provide a common interface for library code which is intended
 // to be shared between user-mode and kernel code.  It is also responsible for
 // automatically initializing and destroying the internal mutex object.
 #if _KERNEL
diff --git a/system/ulib/fbl/include/fbl/ref_counted_internal.h b/system/ulib/fbl/include/fbl/ref_counted_internal.h
index 58c4187..2aadc16 100644
--- a/system/ulib/fbl/include/fbl/ref_counted_internal.h
+++ b/system/ulib/fbl/include/fbl/ref_counted_internal.h
@@ -114,7 +114,7 @@
     // Note:
     //
     // The PreAdoptSentinel value is chosen specifically to be negative when
-    // stored as an int32_t, and as far away from becoming positiive (via either
+    // stored as an int32_t, and as far away from becoming positive (via either
     // addition or subtraction) as possible.  These properties allow us to
     // combine the debug-build adopt sanity checks and the lifecycle sanity
     // checks into a single debug assert.
diff --git a/system/ulib/fbl/include/fbl/vector.h b/system/ulib/fbl/include/fbl/vector.h
index 4e6ff7b..bf3da2f 100644
--- a/system/ulib/fbl/include/fbl/vector.h
+++ b/system/ulib/fbl/include/fbl/vector.h
@@ -387,7 +387,7 @@
         }
     }
 
-    // Forces capacity to become newCapcity.
+    // Forces capacity to become newCapacity.
     // Returns true on success, false on failure.
     // If reallocate fails, the old "ptr_" array is unmodified.
     bool reallocate(size_t newCapacity, AllocChecker* ac) {
diff --git a/system/utest/fbl/type_support_tests.cpp b/system/utest/fbl/type_support_tests.cpp
index f72a8d2..0357e4f 100644
--- a/system/utest/fbl/type_support_tests.cpp
+++ b/system/utest/fbl/type_support_tests.cpp
@@ -451,7 +451,7 @@
 
 static void SomeStaticFunc() { }
 void SomeGlobalFunc() {
-    // Force an artifical use of SomeStaticFunc to avoid warnings.
+    // Force an artificial use of SomeStaticFunc to avoid warnings.
     SomeStaticFunc();
 }
 
