diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 6b80ff5..664db13 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -41,7 +41,6 @@
 #include "generate/t_xsd_generator.h"
 #include "generate/t_perl_generator.h"
 #include "generate/t_erl_generator.h"
-#include "generate/t_ocaml_generator.h"
 #include "generate/t_hs_generator.h"
 #include "generate/t_cocoa_generator.h"
 #include "generate/t_st_generator.h"
@@ -613,7 +612,6 @@
   fprintf(stderr, "  -xsd        Generate XSD output files\n");
   fprintf(stderr, "  -perl       Generate Perl output files\n");
   fprintf(stderr, "  -erl        Generate Erlang output files\n");
-  fprintf(stderr, "  -ocaml      Generate OCaml output files\n");
   fprintf(stderr, "  -hs         Generate Haskell output files\n");
   fprintf(stderr, "  -cocoa      Generate Cocoa/Objective-C output files\n");
   fprintf(stderr, "  -csharp     Generate C# output files\n");
@@ -915,13 +913,6 @@
       delete erl;
     }
 
-    if (gen_ocaml) {
-      pverbose("Generating OCaml\n");
-      t_ocaml_generator* ocaml = new t_ocaml_generator(program);
-      ocaml->generate_program();
-      delete ocaml;
-    }
-
     if (gen_hs) {
       pverbose("Generating Haskell\n");
       t_hs_generator* hs = new t_hs_generator(program);
@@ -1143,9 +1134,13 @@
     pwarning(1, "-javabean is deprecated.  Use --gen java:beans");
     generator_strings.push_back("java:beans");
   }
+  if (gen_ocaml) {
+    pwarning(1, "-ocaml is deprecated.  Use --gen ocaml");
+    generator_strings.push_back("ocaml");
+  }
 
   // You gotta generate something!
-  if (!gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_erl && !gen_ocaml && !gen_hs && !gen_cocoa && !gen_st && !gen_csharp && generator_strings.empty()) {
+  if (!gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_erl && !gen_hs && !gen_cocoa && !gen_st && !gen_csharp && generator_strings.empty()) {
     fprintf(stderr, "!!! No output language(s) specified\n\n");
     usage();
   }
