diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index c62c925..41305d5 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -35,6 +35,7 @@
 #include "generate/t_rb_generator.h"
 #include "generate/t_xsd_generator.h"
 #include "generate/t_perl_generator.h"
+#include "generate/t_erl_generator.h"
 
 using namespace std;
 
@@ -124,6 +125,7 @@
 bool gen_php = false;
 bool gen_phpi = false;
 bool gen_perl = false;
+bool gen_erl = false;
 bool gen_recurse = false;
 
 /**
@@ -301,6 +303,7 @@
   fprintf(stderr, "  -rb         Generate Ruby output files\n");
   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, "  -I dir      Add a directory to the list of directories \n");
   fprintf(stderr, "                searched for include directives\n");
   fprintf(stderr, "  -nowarn     Suppress all compiler warnings (BAD!)\n");
@@ -563,6 +566,13 @@
       delete perl;
     }
 
+    if (gen_erl) {
+      pverbose("Generating Erlang\n");
+      t_erl_generator* erl = new t_erl_generator(program);
+      erl->generate_program();
+      delete erl;
+    }
+
   } catch (string s) {
     printf("Error: %s\n", s.c_str());
   } catch (const char* exc) {
@@ -625,6 +635,8 @@
         gen_xsd = true;
       } else if (strcmp(arg, "-perl") == 0) {
         gen_perl = true;
+      } else if (strcmp(arg, "-erl") == 0) {
+        gen_erl = true;
       } else if (strcmp(arg, "-I") == 0) {
         // An argument of "-I\ asdf" is invalid and has unknown results
         arg = argv[++i];
@@ -645,7 +657,7 @@
   }
 
   // You gotta generate something!
-  if (!gen_cpp && !gen_java && !gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl) {
+  if (!gen_cpp && !gen_java && !gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_erl) {
     fprintf(stderr, "!!! No output language(s) specified\n\n");
     usage();
   }
