diff --git a/examples/AddPerson.java b/examples/AddPerson.java
index 259cfb7..c262ab7 100644
--- a/examples/AddPerson.java
+++ b/examples/AddPerson.java
@@ -80,7 +80,7 @@
     }
 
     // Add an address.
-    addressBook.addPersons(
+    addressBook.addPeople(
       PromptForAddress(new BufferedReader(new InputStreamReader(System.in)),
                        System.out));
 
diff --git a/examples/ListPeople.java b/examples/ListPeople.java
index 0294fb7..7892430 100644
--- a/examples/ListPeople.java
+++ b/examples/ListPeople.java
@@ -9,7 +9,7 @@
 class ListPeople {
   // Iterates though all people in the AddressBook and prints info about them.
   static void Print(AddressBook addressBook) {
-    for (Person person: addressBook.getPersonsList()) {
+    for (Person person: addressBook.getPeopleList()) {
       System.out.println("Person ID: " + person.getId());
       System.out.println("  Name: " + person.getName());
       if (!person.getEmail().isEmpty()) {
diff --git a/examples/add_person.cc b/examples/add_person.cc
index e71d384..9bec4b3 100644
--- a/examples/add_person.cc
+++ b/examples/add_person.cc
@@ -77,7 +77,7 @@
   }
 
   // Add an address.
-  PromptForAddress(address_book.add_persons());
+  PromptForAddress(address_book.add_people());
 
   {
     // Write the new address book back to disk.
diff --git a/examples/add_person.py b/examples/add_person.py
index 919a1a1..fd81c98 100755
--- a/examples/add_person.py
+++ b/examples/add_person.py
@@ -50,7 +50,7 @@
   print sys.argv[1] + ": File not found.  Creating a new file."
 
 # Add an address.
-PromptForAddress(address_book.persons.add())
+PromptForAddress(address_book.people.add())
 
 # Write the new address book back to disk.
 f = open(sys.argv[1], "wb")
diff --git a/examples/addressbook.proto b/examples/addressbook.proto
index 64cb7ac..bfdceea 100644
--- a/examples/addressbook.proto
+++ b/examples/addressbook.proto
@@ -29,5 +29,5 @@
 
 // Our address book file is just one of these.
 message AddressBook {
-  repeated Person persons = 1;
+  repeated Person people = 1;
 }
diff --git a/examples/list_people.cc b/examples/list_people.cc
index 3daa315..68e5666 100644
--- a/examples/list_people.cc
+++ b/examples/list_people.cc
@@ -8,8 +8,8 @@
 
 // Iterates though all people in the AddressBook and prints info about them.
 void ListPeople(const tutorial::AddressBook& address_book) {
-  for (int i = 0; i < address_book.persons_size(); i++) {
-    const tutorial::Person& person = address_book.persons(i);
+  for (int i = 0; i < address_book.people_size(); i++) {
+    const tutorial::Person& person = address_book.people(i);
 
     cout << "Person ID: " << person.id() << endl;
     cout << "  Name: " << person.name() << endl;
diff --git a/examples/list_people.py b/examples/list_people.py
index e065849..755de90 100755
--- a/examples/list_people.py
+++ b/examples/list_people.py
@@ -7,7 +7,7 @@
 
 # Iterates though all people in the AddressBook and prints info about them.
 def ListPeople(address_book):
-  for person in address_book.persons:
+  for person in address_book.people:
     print "Person ID:", person.id
     print "  Name:", person.name
     if person.email != "":
