diff --git a/compiler/cpp/Makefile.am b/compiler/cpp/Makefile.am
index d7c7085..2dcdb5e 100644
--- a/compiler/cpp/Makefile.am
+++ b/compiler/cpp/Makefile.am
@@ -1,4 +1,5 @@
 AM_YFLAGS = -d
+BUILT_SOURCES =
 
 bin_PROGRAMS = thrift
 
@@ -80,3 +81,31 @@
 
 clean-local:
 	$(RM) thriftl.cc thrifty.cc thrifty.h
+
+src/main.cc: version.h
+
+# Adding this to BUILT_SOURCES will cause version.h to be
+# regenerated on every "make all" or "make check", which is
+# necessary because it changes whenever we "svn up" or similar.
+# Ideally, we would like this to be regenerated whenever the
+# compiler is rebuilt, but every way we could think of to do
+# that caused unnecessary rebuilds of the compiler.
+BUILT_SOURCES += regen_version_h
+
+THRIFT_VERSION=$(shell /bin/sh $(top_srcdir)/print_version.sh -v)
+THRIFT_REVISION=$(shell /bin/sh $(top_srcdir)/print_version.sh -r)
+
+regen_version_h:
+	@echo -n "Regenerating version.h... "
+	@TMPFILE=`mktemp ./version_h.tmp_XXXXXX` ; \
+		echo "// AUTOGENERATED, DO NOT EDIT" > $$TMPFILE ; \
+		echo '#define THRIFT_VERSION "$(THRIFT_VERSION)"\n' >> $$TMPFILE ; \
+		echo '#define THRIFT_REVISION "$(THRIFT_REVISION)"\n' >> $$TMPFILE ; \
+		if cmp $$TMPFILE version.h >/dev/null ; \
+		then \
+			rm -f $$TMPFILE ; \
+			echo "No changes." ; \
+		else \
+			mv $$TMPFILE version.h ; \
+			echo "Updated." ; \
+		fi
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index c6a848b..8c3903a 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -40,6 +40,8 @@
 #include "generate/t_xsd_generator.h"
 #include "generate/t_erl_generator.h"
 
+#include "version.h"
+
 using namespace std;
 
 /**
@@ -589,11 +591,19 @@
 }
 
 /**
+ * Prints the version number
+ */
+void version() {
+  printf("Thrift version %s-%s\n", THRIFT_VERSION, THRIFT_REVISION);
+}
+
+/**
  * Diplays the usage message and then exits with an error code.
  */
 void usage() {
   fprintf(stderr, "Usage: thrift [options] file\n");
   fprintf(stderr, "Options:\n");
+  fprintf(stderr, "  -version    Print the compiler version\n");
   fprintf(stderr, "  -php        Generate PHP output files\n");
   fprintf(stderr, "  -phpi       Generate PHP inlined files\n");
   fprintf(stderr, "  -phps       Generate PHP server stubs (with -php)\n");
@@ -937,7 +947,10 @@
         ++arg;
       }
 
-      if (strcmp(arg, "-debug") == 0) {
+      if (strcmp(arg, "-version") == 0) {
+        version();
+        exit(1);
+      } else if (strcmp(arg, "-debug") == 0) {
         g_debug = 1;
       } else if (strcmp(arg, "-nowarn") == 0) {
         g_warn = 0;
@@ -1051,6 +1064,12 @@
     }
   }
 
+  // if you're asking for version, you have a right not to pass a file
+  if (strcmp(argv[argc-1], "-version") == 0) {
+    version();
+    exit(1);
+  }
+
   // TODO(dreiss): Delete these when everyone is using the new hotness.
   if (gen_cpp) {
     pwarning(1, "-cpp is deprecated.  Use --gen cpp");
