diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 015d1ba..0078055 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -35,8 +35,8 @@
 #include "generate/t_rb_generator.h"
 #include "generate/t_xsd_generator.h"
 #include "generate/t_perl_generator.h"
-#include "generate/t_ocaml_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"
 
@@ -140,8 +140,8 @@
 bool gen_phpi = false;
 bool gen_rest = false;
 bool gen_perl = false;
-bool gen_ocaml = false;
 bool gen_erl = false;
+bool gen_ocaml = false;
 bool gen_hs = false;
 bool gen_cocoa = false;
 bool gen_dense = false;
@@ -562,8 +562,8 @@
   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, "  -ocaml      Generate OCaml 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, "  -I dir      Add a directory to the list of directories\n");
@@ -844,6 +844,13 @@
       delete perl;
     }
 
+    if (gen_erl) {
+      pverbose("Generating Erlang\n");
+      t_erl_generator* erl = new t_erl_generator(program);
+      erl->generate_program();
+      delete erl;
+    }
+
     if (gen_ocaml) {
       pverbose("Generating OCaml\n");
       t_ocaml_generator* ocaml = new t_ocaml_generator(program);
@@ -851,28 +858,23 @@
       delete ocaml;
     }
 
-    if (gen_erl) {
-      pverbose("Generating Erlang\n");
-      t_erl_generator* erl = new t_erl_generator(program);
-      erl->generate_program();
-      delete erl;
-    }
     if (gen_hs) {
       pverbose("Generating Haskell\n");
       t_hs_generator* hs = new t_hs_generator(program);
       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);
     }
-
   } catch (string s) {
     printf("Error: %s\n", s.c_str());
   } catch (const char* exc) {
@@ -941,10 +943,10 @@
         gen_xsd = true;
       } else if (strcmp(arg, "-perl") == 0) {
         gen_perl = true;
-      } else if (strcmp(arg, "-ocaml") == 0) {
-        gen_ocaml = true;
       } else if (strcmp(arg, "-erl") == 0) {
         gen_erl = true;
+      } else if (strcmp(arg, "-ocaml") == 0) {
+        gen_ocaml = true;
       } else if (strcmp(arg, "-hs") == 0) {
         gen_hs = true;
       } else if (strcmp(arg, "-cocoa") == 0) {
@@ -969,7 +971,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 && !gen_cocoa) {
+  if (!gen_cpp && !gen_java && !gen_javabean && !gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_erl && !gen_ocaml && !gen_hs && !gen_cocoa) {
     fprintf(stderr, "!!! No output language(s) specified\n\n");
     usage();
   }
