diff --git a/compiler/cpp/src/generate/t_cocoa_generator.cc b/compiler/cpp/src/generate/t_cocoa_generator.cc
index 9dadd2d..e71f6cc 100644
--- a/compiler/cpp/src/generate/t_cocoa_generator.cc
+++ b/compiler/cpp/src/generate/t_cocoa_generator.cc
@@ -173,7 +173,7 @@
   std::string base_type_name(t_base_type* tbase);
   std::string declare_field(t_field* tfield);
   std::string declare_property(t_field* tfield);
-  std::string synthesize_property(t_field* tfield);
+  std::string dynamic_property(t_field* tfield);
   std::string function_signature(t_function* tfunction);
   std::string argument_list(t_struct* tstruct);
   std::string type_to_enum(t_type* ttype);
@@ -574,11 +574,11 @@
   const vector<t_field*>& members = tstruct->get_members();
   vector<t_field*>::const_iterator m_iter;
 
-  // synthesize properties
+  // @dynamic property declarations
   if (!members.empty()) {
     out << "#if TARGET_OS_IPHONE || (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)" << endl;
     for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
-      out << indent() << synthesize_property(*m_iter) << endl;
+      out << indent() << dynamic_property(*m_iter) << endl;
     }
     out << "#endif" << endl << endl;
   }
@@ -2187,12 +2187,12 @@
 }
 
 /**
- * Synthesizes an Objective-C 2.0 property.
+ * Add @dynamic declaration for an Objective-C 2.0 property.
  *
- * @param tfield The field to synthesize a property for
+ * @param tfield The field for which to declare a dynamic property
  */
-string t_cocoa_generator::synthesize_property(t_field* tfield) {
-  return "@synthesize " + tfield->get_name() + ";";
+string t_cocoa_generator::dynamic_property(t_field* tfield) {
+  return "@dynamic " + tfield->get_name() + ";";
 }
 
 /**
