diff --git a/README.md b/README.md
index 5b5ed16..a5af5ab 100644
--- a/README.md
+++ b/README.md
@@ -107,7 +107,7 @@
 Requirements
 ============
 
-See http://thrift.apache.org/docs/install for a list of build requirements (may be stale).  Alternatively see the docker build environments for a list of prerequisites.
+See http://thrift.apache.org/docs/install for a list of build requirements (may be stale).  Alternatively, see the docker build environments for a list of prerequisites.
 
 Resources
 =========
@@ -186,7 +186,7 @@
 Apache Thrift is available via a number of package managers, a list which is 
 is steadily growing. A more detailed overview can be found 
 [at the Apache Thrift web site under "Libraries"](http://thrift.apache.org/lib/) 
-and/or in the respecitive READMEs for each language under /lib
+and/or in the respective READMEs for each language under /lib
 
 Testing
 =======
diff --git a/doc/ReleaseManagement.md b/doc/ReleaseManagement.md
index ee744ae..d2b6f34 100644
--- a/doc/ReleaseManagement.md
+++ b/doc/ReleaseManagement.md
@@ -14,13 +14,13 @@
 - *minor* is increased for each release cycle;
 - *patch* is increased for patch builds between release cycles to address critical defect, security, or packaging issues
 
-Further, if there are only packaging changes for a single third-party distribution point to correct an issue, the major.minor.patch may remain the same while adding a suffix compatible with that distribution point, for example "0.12.0.1" for nuget, or "0.12.0-1" for maven.
+Further, if there are only packaging changes for a single third-party distribution point to correct an issue, the major.minor.patch may remain the same while adding a suffix compatible with that distribution point, for example, "0.12.0.1" for nuget, or "0.12.0-1" for maven.
 
 #### External Package Patches
 
 It is common to have language-specific critical defects or packaging errors that need to be resolved between releases of Apache Thrift.  The project handles these on a case-by-case basis for languages that have their own [package management systems](http://apache.thrift.org/libraries).  When a language-specific patch is made, the patch level of the distribution pushed to the external package manager is bumped.
 
- As such, there may be cases between Apache Thrift releases where there are (for example) a `0.12.1` and `0.12.2` version of a Haskell Hackage package, and perhaps also a `0.12.3` version of a dlang dub package.  You will not find a tag or an official project release in these cases, however the code changes will be reflected in the release branch and in master.  In these cases we would not release a version of Apache Thrift nor would we refresh all the external language packages.
+ As such, there may be cases between Apache Thrift releases where there are (for example) a `0.12.1` and `0.12.2` version of a Haskell Hackage package, and perhaps also a `0.12.3` version of a dlang dub package.  You will not find a tag or an official project release in these cases, however, the code changes will be reflected in the release branch and in master.  In these cases we would not release a version of Apache Thrift nor would we refresh all the external language packages.
 
 #### Version in the master branch
 
@@ -76,7 +76,7 @@
 
     It is healthy to scrub these periodically, whether or not you are making a new release.
 
-1. Check that the version number in the `master` branch matches the version number of the upcomning release.  To check the `master` branch version, run:
+1. Check that the version number in the `master` branch matches the version number of the upcoming release.  To check the `master` branch version, run:
 
     ```bash
     thrift$ grep AC_INIT configure.ac | cut -d'[' -f3 | cut -d']' -f1
@@ -315,11 +315,11 @@
         --username <apache-username> --password <apache-password>
     ```
 
-    **NOTE** One you check in, you need to wait about a day for all the mirrors to update.  You cannot send the announcement email or update the web site until the mirrors are updated.
+    **NOTE** Once you check-in, you need to wait about a day for all the mirrors to update.  You cannot send the announcement email or update the web site until the mirrors are updated.
 
 1. Create and push a tag for the release, for example "v1.0.0".
 
-    **NOTE:** All new releases must have the "v" prefix to satisfy third  party package managers (dlang dub, golang, etc..)
+    **NOTE:** All new releases must have the "v" prefix to satisfy third-party package managers (dlang dub, golang, etc..)
 
     **NOTE:** You **should** [sign the release tag](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work).  Since you already have a GPG signing key for publishing the Apache Release, you want to [upload that key to your GitHub account](https://help.github.com/en/articles/adding-a-new-gpg-key-to-your-github-account).  Once the key is known by GitHub you can sign the tag.
 
@@ -389,7 +389,7 @@
 
 #### Third Party Package Managers
 
-See https://thrift.apache.org/lib/ for the current status of each external package manager's distribution.  Information below is from the 0.12.0 release:
+See https://thrift.apache.org/lib/ for the current status of each external package manager's distribution.  The information below is from the 0.12.0 release:
 
   > This section needs to be updated with detailed instructions for each language, or pointers to the README.md files in each language directory with detailed release instructions for the given package management system.
 
@@ -398,7 +398,7 @@
   * Go into lib/dart and run "pub publish --dry-run" and resolve any warnings.
   * Run "pub publish" and go through the google account authorization to allow it.
 * [dlang] Within a day, the dlang dub site https://code.dlang.org/packages/apache-thrift?tab=info
-  should pick up the release based on the tag.  No action needed.
+  should pick up the release based on the tag.  No action is needed.
 * [haskell] https://hackage.haskell.org/package/thrift
     https://jira.apache.org/jira/browse/THRIFT-4698
 * [npmjs] @jfarrell is the only one who can do this right now.
diff --git a/doc/coding_standards.md b/doc/coding_standards.md
index 308100a..a8c7b60 100644
--- a/doc/coding_standards.md
+++ b/doc/coding_standards.md
@@ -6,18 +6,18 @@
 
 The purpose of this document is to make everyone's life easier.
 
-It's easier when you read good, well formatted, with clearly defined purpose, code.
+It's easier when you read good, well-formatted, with a clearly defined purpose, code.
 But the only way to read clean code is to write such.
 
 This document can help achieve that, but keep in mind that
 those are not silver-bullet, fix-all-at-once rules. Just think about readability while writing code.
-Write code like you would have to read it in ten years from now.
+Write code like you would have to read it ten years from now.
 
 ## General Coding Standards
 
 Thrift has some history. Not all existing code follows those rules.
 But we want to improve over time.
-When making small change / bugfix - like single line fix - do *not* refactor whole function.
+When making a small change / bugfix - like a single line fix - do *not* refactor the whole function.
 That disturbs code repository history.
 Whenever adding something new and / or making bigger refactoring
  - follow those rules as strictly as you can.
@@ -26,23 +26,23 @@
 Code review is the best way to improve readability.
 
 ### Basics
- * Use spaces not tabs
+ * Use spaces, not tabs
  * Use only ASCII characters in file and directory names
- * Commit to repository using Unix-style line endings (LF)
+ * Commit to the repository using Unix-style line endings (LF)
      On Windows:
        git config core.autocrlf true
  * Maximum line width - 100 characters
  * If not specified otherwise in language specific standard - use 2 spaces as indent/tab
 
 ### Comments
- * Each file has to start with comment containing [Apache License](http://www.apache.org/licenses/LICENSE-2.0)
- * Public API of library should be documented, preferably using format native for language specific documentation generation tools (Javadoc, Doxygen etc.)
+ * Each file has to start with a comment containing [Apache License](http://www.apache.org/licenses/LICENSE-2.0)
+ * Public API of a library should be documented, preferably using format native for language-specific documentation generation tools (Javadoc, Doxygen etc.)
  * Other comments are discouraged - comments are lies. When one has to make comment it means one failed to write readable code. Instead of "I should write a comment here" think "I should clean it up"
  * Do not leave "TODO/FIXME" comments - file [Jira](http://issues.apache.org/jira/browse/THRIFT) issue instead
 
 ### Naming
  Finding proper names is the most important and most difficult task in software development.
 
-## Language Specific Coding Standards
+## Language-Specific Coding Standards
 
 For detailed information see `lib/LANG/coding_standards.md`
diff --git a/doc/committers.md b/doc/committers.md
index 2326711..0dad94f 100644
--- a/doc/committers.md
+++ b/doc/committers.md
@@ -17,7 +17,7 @@
 
 1. Inspect the applied patch to ensure that all [Legal aspects on Submission of Contributions (Patches)](http://www.apache.org/licenses/LICENSE-2.0.html#contributions) are met
 
-1. Run the necessary unit tests and cross language test cases to verify the patch
+1. Run the necessary unit tests and cross-language test cases to verify the patch
 
 1. Commit the patch
 
@@ -34,7 +34,7 @@
 
        Description of what was fixed or addressed.
 
-       If this is a github pull request then add below comment to automaticaly close GitHub request, 
+       If this is a github pull request then add the below comment to automatically close the GitHub request, 
 	   where #NNNN is the PR number:
        
         This closes #NNNN
@@ -47,7 +47,7 @@
        git push origin master
 
 
-1. Resolve the jira issue and set the following for the changelog
+1. Resolve the Jira issue and set the following for the changelog
 
   * Component the patch is for
   * fixVersion to the current version on master
diff --git a/doc/install/windows.md b/doc/install/windows.md
index 8618934..065b574 100644
--- a/doc/install/windows.md
+++ b/doc/install/windows.md
@@ -1,6 +1,6 @@
 ## Windows Setup
 
-The Thrift environment consists of two main parts: The Thrift compiler EXE and the language-dependent libraries. Most of these libraries will require some kind of build and/or installation. But regarding the Thrift compiler utility there are a number of different alternatives. 
+The Thrift environment consists of two main parts: The Thrift compiler EXE and the language-dependent libraries. Most of these libraries will require some kind of build and/or installation. But regarding the Thrift compiler utility, there are a number of different alternatives. 
 
 The first one of these alternatives is to download the **pre-built Thrift Compiler EXE** and only build the libraries needed from source, following one of the "Setup from source" methods outlined below.
 
@@ -112,7 +112,7 @@
 
 Then linking using $(LTHRIFT) instead of -lthrift.
 
-	TODO - diagnose issue further
+	TODO - diagnose the issue further
 
 #### C++ runtime segfault with cygwin 1.7.5-1, g++-4.3.4, fork() and throw
 
@@ -131,7 +131,7 @@
  * MinGW 
  * [Apache Thrift Requirements](/docs/install)
 
-In addition you need to add the following entry to your windows PATH variable.
+In addition, you need to add the following entry to your windows PATH variable.
 
 	C:\MINGW\BIN
 	
diff --git a/doc/specs/HeaderFormat.md b/doc/specs/HeaderFormat.md
index 0456f1e..9b74159 100644
--- a/doc/specs/HeaderFormat.md
+++ b/doc/specs/HeaderFormat.md
@@ -46,7 +46,7 @@
 don't know how to transform the data.
 
 Conversely, data in the info headers is ignorable.  This should only
-be things like timestamps, debuging tracing, etc.  Using the header
+be things like timestamps, debugging tracing, etc.  Using the header
 size you should be able to skip this data and read the payload safely
 if you don't know the info ID.
 
@@ -61,7 +61,7 @@
 Header will be padded out to next 4-byte boundary with `0x00`.
 
 Max frame size is `0x3FFFFFFF`, which is slightly less than `HTTP_MAGIC`.
-This allows us to distingush between different (older) transports.
+This allows us to distinguish between different (older) transports.
 
 ### Transform IDs:
 
diff --git a/doc/specs/idl.md b/doc/specs/idl.md
index 7563310..39b2ddd 100644
--- a/doc/specs/idl.md
+++ b/doc/specs/idl.md
@@ -104,7 +104,7 @@
 
 ### Field Requiredness
 
-There are two explicit requiredness values, and a third one that is applied implicity if neither  *required* nor *optional* are given: *default* requiredness.
+There are two explicit requiredness values, and a third one that is applied implicitly if neither  *required* nor *optional* are given: *default* requiredness.
 
     [18] FieldReq        ::=  'required' | 'optional' 
 
@@ -144,7 +144,7 @@
 
 ### XSD Options
 
-N.B.: These have  some internal purpose at Facebook but serve no current purpose in Thrift. Use of these options is strongly discouraged.
+N.B.: These have some internal purpose at Facebook but serve no current purpose in Thrift. The use of these options is strongly discouraged.
 
     [19] XsdFieldOptions ::=  'xsd_optional'? 'xsd_nillable'? XsdAttrs?
 
@@ -236,7 +236,7 @@
 Why does position of `CppType` vary between `SetType` and `ListType`?
 
  * std::set does sort the elements automatically, that's the design. see [Thrift Types](/docs/types) or the [C++ std:set reference][] for further details
- * The question is, how other languages are doing that? What about custom objects, do they have a Compare function the set the order correctly?
+ * The question is, how other languages are doing that? What about custom objects, do they have a Compare function to set the order correctly?
 
  [C++ std:set reference]: http://www.cplusplus.com/reference/stl/set/
 
diff --git a/doc/specs/thrift-binary-protocol.md b/doc/specs/thrift-binary-protocol.md
index a852685..fc3338f 100644
--- a/doc/specs/thrift-binary-protocol.md
+++ b/doc/specs/thrift-binary-protocol.md
@@ -24,10 +24,10 @@
 --------------------------------------------------------------------
 -->
 
-This documents describes the wire encoding for RPC using the older Thrift *binary protocol*.
+This document describes the wire encoding for RPC using the older Thrift *binary protocol*.
 
 The information here is _mostly_ based on the Java implementation in the Apache thrift library (version 0.9.1 and
-0.9.3). Other implementation however, should behave the same.
+0.9.3). Other implementation, however, should behave the same.
 
 For background on Thrift see the [Thrift whitepaper (pdf)](https://thrift.apache.org/static/files/thrift-20070401.pdf).
 
@@ -150,7 +150,7 @@
 Note that the field name is not encoded so field renames in the IDL do not affect forward and backward compatibility.
 
 The default Java implementation (Apache Thrift 0.9.1) has undefined behavior when it tries to decode a field that has
-another field-type then what is expected. Theoretically this could be detected at the cost of some additional checking.
+another field-type than what is expected. Theoretically, this could be detected at the cost of some additional checking.
 Other implementation may perform this check and then either ignore the field, or return a protocol exception.
 
 A *Union* is encoded exactly the same as a struct with the additional restriction that at most 1 field may be encoded.
@@ -213,7 +213,7 @@
 
 The element-type values are the same as field-types. The full list is included in the struct section above.
 
-The maximum list/set size is configurable. By default there is no limit (meaning the limit is the maximum int32 value:
+The maximum list/set size is configurable. By default, there is no limit (meaning the limit is the maximum int32 value:
 2147483647).
 
 ## Map
diff --git a/doc/specs/thrift-protocol-spec.md b/doc/specs/thrift-protocol-spec.md
index 0c1a61c..080487e 100644
--- a/doc/specs/thrift-protocol-spec.md
+++ b/doc/specs/thrift-protocol-spec.md
@@ -33,7 +33,7 @@
 structure. There are some "dumb" terminals like STRING and INT
 that take the place of an actual encoding specification.
 
-They key point to notice is that ALL messages are just one wrapped
+The key point to notice is that ALL messages are just one wrapped
 `<struct>`. Depending upon the message type, the `<struct>` can be
 interpreted as the argument list to a function, the return value
 of a function, or an exception.
diff --git a/doc/specs/thrift-rpc.md b/doc/specs/thrift-rpc.md
index d45c06f..fbff3b6 100644
--- a/doc/specs/thrift-rpc.md
+++ b/doc/specs/thrift-rpc.md
@@ -24,15 +24,15 @@
 --------------------------------------------------------------------
 -->
 
-This document describes the high level message exchange between the Thrift RPC client and server.
+This document describes the high-level message exchange between the Thrift RPC client and server.
 See [thrift-binary-protocol.md] and [thrift-compact-protocol.md] for a description of how the exchanges are encoded on
 the wire.
 
-In addition, this document compares the binary protocol with the compact protocol. Finally it describes the framed vs.
+In addition, this document compares the binary protocol with the compact protocol. Finally, it describes the framed vs.
 unframed transport.
 
 The information here is _mostly_ based on the Java implementation in the Apache thrift library (version 0.9.1 and
-0.9.3). Other implementation however, should behave the same.
+0.9.3). Other implementation, however, should behave the same.
 
 For background on Thrift see the [Thrift whitepaper (pdf)](https://thrift.apache.org/static/files/thrift-20070401.pdf).
 
@@ -93,14 +93,14 @@
 not encode or decode a message or struct.
 
 In the Java implementation (0.9.3) there is different behavior for the synchronous and asynchronous server. In the async
-server all exceptions are send as a `TApplicationException` (see 'Response struct' below). In the synchronous Java
+server all exceptions are sent as a `TApplicationException` (see 'Response struct' below). In the synchronous Java
 implementation only (undeclared) exceptions that extend `TException` are send as a `TApplicationException`. Unchecked
 exceptions lead to an immediate close of the connection.
 
 Type `Oneway` is only used starting from Apache Thrift 0.9.3. Earlier versions do _not_ send TMessages of type `Oneway`,
 even for service methods defined with the `oneway` modifier.
 
-When client sends a request with type `Oneway`, the server must _not_ send a response (steps 3 and 4 are skipped). Note
+When the client sends a request with type `Oneway`, the server must _not_ send a response (steps 3 and 4 are skipped). Note
 that the Thrift IDL enforces a return type of `void` and does not allow exceptions for oneway services.
 
 ## Request struct
@@ -151,7 +151,7 @@
 ## Compatibility
 
 A server could automatically determine whether a client talks the binary protocol or the compact protocol by
-investigating the first byte. If the value is `1000 0001` or `0000 0000` (assuming a name shorter then ±16 MB) it is the
+investigating the first byte. If the value is `1000 0001` or `0000 0000` (assuming a name shorter than ±16 MB) it is the
 binary protocol. When the value is `1000 0010` it is talking the compact protocol.
 
 ## Framed vs. unframed transport
