diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 4362029..015d1ba 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -38,6 +38,7 @@
 #include "generate/t_ocaml_generator.h"
 #include "generate/t_erl_generator.h"
 #include "generate/t_hs_generator.h"
+#include "generate/t_cocoa_generator.h"
 
 using namespace std;
 
@@ -142,6 +143,7 @@
 bool gen_ocaml = false;
 bool gen_erl = false;
 bool gen_hs = false;
+bool gen_cocoa = false;
 bool gen_dense = false;
 bool gen_recurse = false;
 
@@ -563,6 +565,7 @@
   fprintf(stderr, "  -ocaml      Generate OCaml output files\n");
   fprintf(stderr, "  -erl        Generate Erlang output files\n");
   fprintf(stderr, "  -hs         Generate Haskell output files\n");
+  fprintf(stderr, "  -cocoa      Generate Cocoa/Objective-C output files\n");
   fprintf(stderr, "  -I dir      Add a directory to the list of directories\n");
   fprintf(stderr, "                searched for include directives\n");
   fprintf(stderr, "  -dense      Generate metadata for TDenseProtocol (C++)\n");
@@ -860,6 +863,12 @@
       hs->generate_program();
       delete hs;
     }
+    if (gen_cocoa) {
+      pverbose("Generating Cocoa/Objective-C\n");
+      t_cocoa_generator* cocoa = new t_cocoa_generator(program);
+      cocoa->generate_program();
+      delete cocoa;
+    }
     if (dump_docs) {
       dump_docstrings(program);
     }
@@ -938,6 +947,8 @@
         gen_erl = true;
       } else if (strcmp(arg, "-hs") == 0) {
         gen_hs = true;
+      } else if (strcmp(arg, "-cocoa") == 0) {
+        gen_cocoa = true;
       } else if (strcmp(arg, "-I") == 0) {
         // An argument of "-I\ asdf" is invalid and has unknown results
         arg = argv[++i];
@@ -958,7 +969,7 @@
   }
 
   // You gotta generate something!
-  if (!gen_cpp && !gen_java && !gen_javabean && !gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_ocaml && !gen_erl && !gen_hs) {
+  if (!gen_cpp && !gen_java && !gen_javabean && !gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_ocaml && !gen_erl && !gen_hs && !gen_cocoa) {
     fprintf(stderr, "!!! No output language(s) specified\n\n");
     usage();
   }
