diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index f2f3a9b..80d3960 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -39,6 +39,7 @@
 #include "generate/t_php_generator.h"
 #include "generate/t_xsd_generator.h"
 #include "generate/t_erl_generator.h"
+#include "generate/t_alterl_generator.h"
 
 using namespace std;
 
@@ -152,6 +153,7 @@
 bool gen_rest = false;
 bool gen_perl = false;
 bool gen_erl = false;
+bool gen_alterl = false;
 bool gen_ocaml = false;
 bool gen_hs = false;
 bool gen_cocoa = false;
@@ -602,6 +604,7 @@
   fprintf(stderr, "  -phpo       Generate PHP with object oriented subclasses (with -php)\n");
   fprintf(stderr, "  -xsd        Generate XSD output files\n");
   fprintf(stderr, "  -erl        Generate Erlang output files\n");
+  fprintf(stderr, "  -alterl     Generate Alternative Erlang output files\n");
   fprintf(stderr, "  -o dir      Set the output directory for gen-* packages\n");
   fprintf(stderr, "               (default: current directory)\n");
   fprintf(stderr, "  -I dir      Add a directory to the list of directories\n");
@@ -878,6 +881,13 @@
       delete erl;
     }
 
+    if (gen_alterl) {
+      pverbose("Generating Alternative Erlang\n");
+      t_alterl_generator* alterl = new t_alterl_generator(program);
+      alterl->generate_program();
+      delete alterl;
+    }
+
     if (dump_docs) {
       dump_docstrings(program);
     }
@@ -994,6 +1004,8 @@
         gen_perl = true;
       } else if (strcmp(arg, "-erl") == 0) {
         gen_erl = true;
+      } else if (strcmp(arg, "-alterl") == 0) {
+        gen_alterl = true;
       } else if (strcmp(arg, "-ocaml") == 0) {
         gen_ocaml = true;
       } else if (strcmp(arg, "-hs") == 0) {
@@ -1105,7 +1117,7 @@
   }
 
   // You gotta generate something!
-  if (!gen_php && !gen_phpi && !gen_xsd && !gen_erl && generator_strings.empty()) {
+  if (!gen_php && !gen_phpi && !gen_xsd && !gen_erl && !gen_alterl && generator_strings.empty()) {
     fprintf(stderr, "!!! No output language(s) specified\n\n");
     usage();
   }
