diff --git a/Makefile.pre.in b/Makefile.pre.in
index 3d08837..1cc43e6 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -438,7 +438,7 @@
 		$(SIGNAL_OBJS) \
 		$(MODOBJS) \
 		$(srcdir)/Modules/getbuildinfo.c
-	$(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LANG=C $(SVNVERSION) $(srcdir)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
+	$(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LANG=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
 
 Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
 	$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
diff --git a/Modules/getbuildinfo.c b/Modules/getbuildinfo.c
index 7343a0f..1ff061f 100644
--- a/Modules/getbuildinfo.c
+++ b/Modules/getbuildinfo.c
@@ -28,15 +28,17 @@
 {
 	static char buildinfo[50];
 #ifdef SVNVERSION
-	static char svnversion[] = SVNVERSION;
+	static char svnversion[50] = SVNVERSION;
 #else
-	static char svnversion[20] = "unknown";
-	if (strstr(headurl, "/tags/") != NULL) {
-		int start = ;
+	static char svnversion[50] = "exported";
+#endif
+	if (strcmp(svnversion, "exported") == 0 &&
+	    strstr(headurl, "/tags/") != NULL) {
+		int start = 11;
+		int stop = strlen(revision)-2;
 		strncpy(svnversion, revision+start, stop-start);
 		svnversion[stop-start] = '\0';
 	}
-#endif
 	PyOS_snprintf(buildinfo, sizeof(buildinfo),
 		      "%s, %.20s, %.9s", svnversion, DATE, TIME);
 	return buildinfo;
diff --git a/configure b/configure
index d36537f..a59889e 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 41852 .
+# From configure.in Revision: 41923 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.59 for python 2.5.
 #
@@ -3576,10 +3576,8 @@
 
 
 
-for ac_prog in svnversion
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
+# Extract the first word of "svnversion", so it can be a program name with args.
+set dummy svnversion; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_SVNVERSION+set}" = set; then
@@ -3595,7 +3593,7 @@
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_SVNVERSION="$ac_prog"
+    ac_cv_prog_SVNVERSION="found"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -3613,10 +3611,12 @@
 echo "${ECHO_T}no" >&6
 fi
 
-  test -n "$SVNVERSION" && break
-done
-test -n "$SVNVERSION" || SVNVERSION="echo no svnversion"
-
+if test $SVNVERSION = found
+then
+	SVNVERSION="svnversion \$(srcdir)"
+else
+	SVNVERSION="echo exported"
+fi
 
 case $MACHDEP in
 bsdos*|hp*|HP*)
diff --git a/configure.in b/configure.in
index 16368a7..acd0168 100644
--- a/configure.in
+++ b/configure.in
@@ -619,7 +619,13 @@
 AC_CHECK_PROGS(AR, ar aal, ar)
 
 AC_SUBST(SVNVERSION)
-AC_CHECK_PROGS(SVNVERSION, svnversion, [echo no svnversion])
+AC_CHECK_PROG(SVNVERSION, svnversion, found)
+if test $SVNVERSION = found
+then
+	SVNVERSION="svnversion \$(srcdir)"
+else
+	SVNVERSION="echo exported"
+fi
 
 case $MACHDEP in
 bsdos*|hp*|HP*)
