diff --git a/lib/d/src/thrift/async/libevent.d b/lib/d/src/thrift/async/libevent.d
index 3358bef..967c41f 100644
--- a/lib/d/src/thrift/async/libevent.d
+++ b/lib/d/src/thrift/async/libevent.d
@@ -430,7 +430,7 @@
   Work[][TAsyncTransport] workQueues_;
 
   /// The total number of work items not yet finished (queued and currently
-  /// excecuted) and delays not yet executed.
+  /// executed) and delays not yet executed.
   uint queuedCount_;
 
   /// Protects queuedCount_.
diff --git a/lib/d/src/thrift/base.d b/lib/d/src/thrift/base.d
index 266201b..5de13c5 100644
--- a/lib/d/src/thrift/base.d
+++ b/lib/d/src/thrift/base.d
@@ -43,7 +43,7 @@
   }
 
   /// The exceptions thrown by the children of the operation. If applicable,
-  /// the list is ordered in the same way the exceptions occured.
+  /// the list is ordered in the same way the exceptions occurred.
   Exception[] exceptions;
 }
 
@@ -62,7 +62,7 @@
  * Examples:
  * ---
  * logInfo("An informative message.");
- * logError("Some error occured: %s", e);
+ * logError("Some error occurred: %s", e);
  * ---
  */
 alias logFormatted!g_infoLogSink logInfo;
diff --git a/lib/d/src/thrift/codegen/client.d b/lib/d/src/thrift/codegen/client.d
index 09753da..117b076 100644
--- a/lib/d/src/thrift/codegen/client.d
+++ b/lib/d/src/thrift/codegen/client.d
@@ -192,7 +192,7 @@
         code ~= "oprot_.writeMessageEnd();\n";
         code ~= "oprot_.transport.flush();\n";
 
-        // If this is not a oneway method, generate the recieving code.
+        // If this is not a oneway method, generate the receiving code.
         if (!methodMetaFound || methodMeta.type != TMethodType.ONEWAY) {
           code ~= "TPresultStruct!(Interface, `" ~ methodName ~ "`) result;\n";
 
diff --git a/lib/d/src/thrift/codegen/client_pool.d b/lib/d/src/thrift/codegen/client_pool.d
index ebf5b60..c46b743 100644
--- a/lib/d/src/thrift/codegen/client_pool.d
+++ b/lib/d/src/thrift/codegen/client_pool.d
@@ -205,7 +205,7 @@
           } else {
             // We are dealing with a normal exception thrown by the
             // server-side method, just pass it on. As far as we are
-            // concerned, the method call succeded.
+            // concerned, the method call succeeded.
             pool_.recordSuccess(c);
             throw e;
           }
diff --git a/lib/d/src/thrift/codegen/idlgen.d b/lib/d/src/thrift/codegen/idlgen.d
index 03e9b90..18af1aa 100644
--- a/lib/d/src/thrift/codegen/idlgen.d
+++ b/lib/d/src/thrift/codegen/idlgen.d
@@ -155,10 +155,10 @@
       // the front. Because with the Thrift compiler types can only depend on
       // other types that have already been defined, we collect all the
       // dependencies, prepend them to the list, and then prune the duplicates
-      // (keeping the first occurences). If this requirement should ever be
+      // (keeping the first occurrences). If this requirement should ever be
       // dropped from Thrift, this could be easily adapted to handle circular
       // dependencies by passing TypeTuple!(T, List) to ForAllWithList instead
-      // of appending List afterwards, and removing the now unneccesary
+      // of appending List afterwards, and removing the now unnecessary
       // NoDuplicates.
       alias NoDuplicates!(
         ForAllWithList!(
diff --git a/lib/d/src/thrift/codegen/processor.d b/lib/d/src/thrift/codegen/processor.d
index e6b77fa..5ce7ac6 100644
--- a/lib/d/src/thrift/codegen/processor.d
+++ b/lib/d/src/thrift/codegen/processor.d
@@ -254,7 +254,7 @@
         code ~= "result.set!`success`(" ~ call ~ ");\n";
       }
 
-      // If this is not a oneway method, generate the recieving code.
+      // If this is not a oneway method, generate the receiving code.
       if (!methodMetaFound || methodMeta.type != TMethodType.ONEWAY) {
         if (methodMetaFound) {
           foreach (e; methodMeta.exceptions) {
diff --git a/lib/d/src/thrift/server/base.d b/lib/d/src/thrift/server/base.d
index b56ae66..f97adbe 100644
--- a/lib/d/src/thrift/server/base.d
+++ b/lib/d/src/thrift/server/base.d
@@ -37,7 +37,7 @@
   /**
    * Starts serving.
    *
-   * Blocks until the server finishes, i.e. a serious problem occured or the
+   * Blocks until the server finishes, i.e. a serious problem occurred or the
    * cancellation request has been triggered.
    *
    * Server implementations are expected to implement cancellation in a best-
diff --git a/lib/d/src/thrift/transport/file.d b/lib/d/src/thrift/transport/file.d
index 7c6705a..9aebd82 100644
--- a/lib/d/src/thrift/transport/file.d
+++ b/lib/d/src/thrift/transport/file.d
@@ -246,7 +246,7 @@
     enforce(!isOpen, new TTransportException(
       "Cannot set chunk size after TFileReaderTransport has been opened."));
     enforce(value > EventSize.sizeof, new TTransportException("Chunks must " ~
-      "be large enough to accomodate at least a single byte of payload data."));
+      "be large enough to accommodate at least a single byte of payload data."));
     chunkSize_ = value;
   }
 
diff --git a/lib/d/src/thrift/util/future.d b/lib/d/src/thrift/util/future.d
index 7c127c4..2b32a01 100644
--- a/lib/d/src/thrift/util/future.d
+++ b/lib/d/src/thrift/util/future.d
@@ -316,7 +316,7 @@
 }
 
 /**
- * Creates an interface that is similiar to a given one, but accepts an
+ * Creates an interface that is similar to a given one, but accepts an
  * additional, optional TCancellation parameter each method, and returns
  * TFutures instead of plain return values.
  *
@@ -454,7 +454,7 @@
 
       ++completedCount_;
       if (completedCount_ == futures_.length) {
-        // This was the last future in the list, there is no possiblity
+        // This was the last future in the list, there is no possibility
         // another result could ever become available.
         finished_ = true;
       }
diff --git a/lib/d/src/thrift/util/hashset.d b/lib/d/src/thrift/util/hashset.d
index 3fa466e..ede122e 100644
--- a/lib/d/src/thrift/util/hashset.d
+++ b/lib/d/src/thrift/util/hashset.d
@@ -31,7 +31,7 @@
  * std.container gains something suitable.
  */
 // Note: The funky pointer casts (i.e. *(cast(immutable(E)*)&e) instead of
-// just cast(immutable(E))e) are a workaround for LDC 2 compatibilty.
+// just cast(immutable(E))e) are a workaround for LDC 2 compatibility.
 final class HashSet(E) {
   ///
   this() {}
@@ -88,7 +88,7 @@
 
   ///
   auto opSlice() const {
-    // TODO: Implement using AA key range once availabe in release DMD/druntime
+    // TODO: Implement using AA key range once available in release DMD/druntime
     // to avoid allocation.
     return cast(E[])(aa_.keys);
   }
