diff --git a/Makefile.am b/Makefile.am
index bd56601..29648a0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,5 +24,5 @@
 dist-hook:
 	find $(distdir) -name '.[a-zA-Z0-9]*' | xargs rm -rf
 
-EXTRA_DIST = bootstrap.sh cleanup.sh print_version.sh doc tutorial contrib \
+EXTRA_DIST = bootstrap.sh cleanup.sh doc tutorial contrib \
              CONTRIBUTORS LICENSE CHANGES DISCLAIMER NOTICE
diff --git a/compiler/cpp/Makefile.am b/compiler/cpp/Makefile.am
index 1d39a35..892b9a0 100644
--- a/compiler/cpp/Makefile.am
+++ b/compiler/cpp/Makefile.am
@@ -118,29 +118,3 @@
 	$(RM) thriftl.cc thrifty.cc thrifty.h version.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:
-	@printf "Regenerating version.h... "
-	@TMPFILE=`mktemp ./version_h.tmp_XXXXXX` ; \
-		echo "// AUTOGENERATED, DO NOT EDIT" > $$TMPFILE ; \
-		echo '#define THRIFT_VERSION "$(THRIFT_VERSION)"' >> $$TMPFILE ; \
-		echo '#define THRIFT_REVISION "$(THRIFT_REVISION)"' >> $$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 2c83690..512245b 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -618,7 +618,7 @@
  * Prints the version number
  */
 void version() {
-  printf("Thrift version %s-%s\n", THRIFT_VERSION, THRIFT_REVISION);
+  printf("Thrift version %s\n", THRIFT_VERSION);
 }
 
 /**
diff --git a/compiler/cpp/version.h.in b/compiler/cpp/version.h.in
new file mode 100644
index 0000000..5770ec9
--- /dev/null
+++ b/compiler/cpp/version.h.in
@@ -0,0 +1 @@
+#define THRIFT_VERSION "@PACKAGE_VERSION@"
diff --git a/configure.ac b/configure.ac
index cc71f53..098b6ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -253,6 +253,7 @@
 AC_CONFIG_FILES([
   Makefile
   compiler/cpp/Makefile
+  compiler/cpp/version.h
   lib/Makefile
   lib/cpp/Makefile
   lib/cpp/thrift.pc
diff --git a/print_version.sh b/print_version.sh
deleted file mode 100755
index f36fa5e..0000000
--- a/print_version.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-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 | tr -d ' '`
-  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
diff --git a/test/Makefile.am b/test/Makefile.am
index 1463a6f..5fd4f0d 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -28,7 +28,7 @@
 endif
 
 noinst_LTLIBRARIES = libtestgencpp.la
-libtestgencpp_la_SOURCES = \
+nodist_libtestgencpp_la_SOURCES = \
 	gen-cpp/DebugProtoTest_types.cpp \
 	gen-cpp/OptionalRequiredTest_types.cpp \
 	gen-cpp/DebugProtoTest_types.cpp \
@@ -175,4 +175,7 @@
 	ThriftTest.thrift \
 	ZlibTest.cpp \
 	DenseProtoTest.cpp \
-	FastbinaryTest.py
+	FastbinaryTest.py \
+	ThriftTest_extras.cpp \
+	DebugProtoTest_extras.cpp
+
