diff --git a/pages/guides/participation.ad b/pages/guides/participation.ad
index 2db8c5b..1177a7b 100644
--- a/pages/guides/participation.ad
+++ b/pages/guides/participation.ad
@@ -18,59 +18,59 @@
 :toc:
 :imagesdir: ../images/
 
-This document aims to help those who are new to the Incubator to learn its ways and netiquette.
+This document helps those who are new to the Incubator learn its ways and netiquette.
 
 == General Netiquette
 
-The usual advice applies. If you are not familiar with the way mailing lists work at Apache, read link:https://apache.org/foundation/mailinglists.html[this].
+The usual advice applies. If you are not familiar with the way email lists work at Apache, read link:https://apache.org/foundation/mailinglists.html[this].
 
-Please ensure that your mail client is correctly configured. In particular, post only plain text emails without attachments to these lists. Apache spam filters may reject HTML emails.
+Please ensure that you have configured your email client correctly. In particular, post only plain-text emails without attachments to these lists. Apache spam filters may reject HTML emails.
 
-The Incubator is a public meeting place with a diverse and ever-changing community. Creating social bonds and establishing a reputation is essential. Please be polite, courteous and diplomatic.
+The Incubator is a public meeting place with a diverse and ever-changing community. Creating social bonds and establishing a reputation are essential. Please be polite, courteous and diplomatic.
 
-When in doubt - ask on link:lists.html#general+at+incubator.apache.org[general.AT.incubator.apache.org].
+When in doubt, ask for guidance on link:lists.html#general+at+incubator.apache.org[general.AT.incubator.apache.org].
 
-== Ways To Participate
-=== On The General Mailing List
+== Ways to Participate
+=== On the General Email List
 
-The *general.AT.incubator.apache.org* is a public list with an open subscription. All are encouraged to subscribe, read and post their opinions in the usual way.
+The *general.AT.incubator.apache.org* email list is public, with an open subscription. We encourage all Incubator participants to subscribe, read and post their opinions in the usual way.
 
-Anyone can, by their words, influence the decision-making process by being involved in discussions and may vote on link:http://www.apache.org/foundation/voting.html[VOTE threads]. However (as is usual) only the votes of those on the link:/incubation/Roles_and_Responsibilities.html#Incubator+Project+Management+Committee+%28PMC%29[Incubator PMC] are binding.
+Anyone can, by their words, influence the decision-making process by being involved in discussions, and may vote on link:http://www.apache.org/foundation/voting.html[VOTE threads]. However (as is usual) only the votes of those on the link:/incubation/Roles_and_Responsibilities.html#Incubator+Project+Management+Committee+%28PMC%29[Incubator PMC] are binding.
 
-=== As A User
+=== As a User
 
-A link:http://www.apache.org/foundation/how-it-works.html#users[user] is anyone who uses our software. Most Apache projects have active user communities who are willing to provide help. This may not be always the case with incubator podlings.
+A link:http://www.apache.org/foundation/how-it-works.html#users[user] is anyone who uses our software. Most Apache projects have active user communities that are willing to provide help. This may not be always the case with incubator podlings.
 
 To gain the maximum benefit from any immature project (as many podlings are), adopt an active attitude. Read link:https://www.apache.org/foundation/getinvolved.html#contribute-back-to-the-community[On Contributing] and link:https://blogs.apache.org/foundation/entry/the-apache-way-to-sustainable[Understanding Open Source]. Become a link:#developer[developer] (in the Apache meaning of the term).
 
-=== As A Developer
+=== As a Developer
 
-At Apache, a link:http://www.apache.org/foundation/how-it-works.html#developers[developer] (aka contributor) is anyone who actively helps to develop our software. These people include more than just coders and documenters. For example, anyone who joins in discussions on the mailing lists or answers questions from users is also a contributor.
+At Apache, a link:http://www.apache.org/foundation/how-it-works.html#developers[developer] (or contributor) is anyone who actively helps develop our software. These people include more than just coders and documenters. For example, anyone who joins in discussions on the email lists or answers questions from users is also a contributor.
 
 Apache is a link:http://www.apache.org/foundation/how-it-works.html#decision-making[_DO_-ocracy]. The first step along the road leading to link:#committer[committership] is to become a developer. For more information, start with link:http://www.apache.org/foundation/how-it-works.html[How Apache Works] and the link:http://www.apache.org/dev/[developer documentation].
 
-=== As A Committer
+=== As a Committer
 
 A link:/incubation/Roles_and_Responsibilities.html#Committers[committer] is anyone with write access to the source repository. Election of committers in the Incubator works a little differently from the process that is usual elsewhere at Apache.
 
-Once a podling has been bootstrapped, link:#developer[developers] are nominated and election to committer happens in the link:ppmc.html#Voting+in+a+new+committer[usual way].
+Once a podling has been bootstrapped, proposing and adding link:#developer[developers] as committers happens in the link:ppmc.html#Voting+in+a+new+committer[usual way].
 
 When a proposal is just a link:/incubation/Roles_and_Responsibilities.html#Candidate[candidate], there are two possible approaches (for those interested in being a committer).
 
-The proposal typically link:proposal.html#template-initial-committers[contains] a list of initial committers. When a podling is bootstrapped, this list is used by the mentors to set up initial accounts. Thus one way to become a committer is to be listed on a podlings proposal as an initial committer.
+The proposal typically link:proposal.html#template-initial-committers[contains] a list of initial committers. When a podling is bootstrapped, the mentors use this list to set up initial accounts. Thus one way to become a committer is appear on a podling proposal as an initial committer.
 
 The right way to express interest is by a post to the list with a brief introduction. Adding your name as an initial committer is impolite.
 
-A podling needs to learn how to recruit new committers from its developers. So, another way is to show up on the list and start helping with the development. This will help the podling more than adding your name to the list of initial committers.
+A podling needs to learn how to recruit committers from among its developers. So another way is to show up on the list and start helping with development. This will help the podling more than adding your name to the list of initial committers.
 
-=== As A Mentor
+=== As a Mentor
 
-Anyone with knowledge of open source or Apache can participate as an informal mentor for a podling. Development is open, and anyone with interest is encouraged to subscribe and participate.
+Anyone with knowledge of open source or Apache can participate as an informal mentor for a podling. Development is open, and we encourage anyone with interest to subscribe and participate.
 
 To act as a formal link:/incubation/Roles_and_Responsibilities.html#Mentor[Mentor] is link:/incubation/Incubation_Policy#Mentor[limited] to IPMC members and ASF members. The best way for an eligible individual to become a Mentor is to post a note introducing themselves and volunteering their services to *general.AT.incubator.apache.org* during the development of the link:proposal.html[proposal].
 
-=== On The Incubator PMC
+=== On the Incubator PMC
 
-Apache Members are encouraged to join the link:/incubation/Roles_and_Responsibilities.html#Incubator+Project+Management+Committee+%28PMC%29[Incubator PMC]. Post a note to the Incubator PMC private list.
+We encourage Apache Members to join the link:/incubation/Roles_and_Responsibilities.html#Incubator+Project+Management+Committee+%28PMC%29[Incubator PMC]. Post a note to the Incubator PMC private list.
 
-Those who aren't members may be elected in the usual Apache way. These elections are held on the private list.
+The IPMC can elect those who aren't members in the usual Apache way. These elections take place on the IPMC private list.
