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");
diff --git a/print_version.sh b/print_version.sh
new file mode 100755
index 0000000..92d1a2d
--- /dev/null
+++ b/print_version.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+cd "`dirname "$0"`"
+
+# Computing both the version and the revision on every invocation is wasteful,
+# but it is cheap and avoids the use of nonportable shell functions.
+
+VERSION=`sed -ne 's/^AC_INIT(\[thrift\], \[\(.*\)\])$/\1/p' configure.ac`
+
+if test -d .svn ; then
+  REVISION="r`svnversion`"
+elif test -d .git ; then
+  SHA1=`git rev-list --max-count=1 --grep='^git-svn-id:' HEAD`
+  REVISION=`git cat-file commit $SHA1 | sed -ne 's/^git-svn-id:[^@]*@\([0-9][0-9]*\).*/r\1/p'`
+  OFFSET=`git rev-list ^$SHA1 HEAD | wc -l`
+  if test $OFFSET != 0 ; then
+    REVISION="$REVISION-$OFFSET-`git rev-parse --verify HEAD | cut -c 1-7`"
+  fi
+else
+  REVISION="exported"
+fi
+
+case "$1" in
+  -v) echo $VERSION ;;
+  -r) echo $REVISION ;;
+  -a) echo "$VERSION-$REVISION" ;;
+  *) echo "Usage: $0 -v|-r|-a"; exit 1;;
+esac
