diff --git a/Makefile.am b/Makefile.am
index 3ab1994a5d963b2e45f8a7cea77ea5a93ceef308..1110cf8d0a9a813b80bf4fc7148951e95d205532 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -68,6 +68,11 @@ MSR_FILES = \
 
 EXTRA_DIST = $(noinst_SCRIPTS) $(MINI_FILES) $(RTAI_FILES) $(MSR_FILES)
 
+dist-hook:
+	if which svnversion >/dev/null 2>&1; then \
+		svnversion $(srcdir) 2>/dev/null >$(distdir)/svnrevision; \
+	fi
+
 install-data-local:
 	$(mkinstalldirs) $(bindir)
 	$(mkinstalldirs) $(initdir)
diff --git a/devices/Kbuild b/devices/Kbuild
index edad4e7ae8ad9c2b3c823fcb84cce634704f1c77..14aaa1490956c6c3d1a0116e3f3c114857d6b726 100644
--- a/devices/Kbuild
+++ b/devices/Kbuild
@@ -39,7 +39,11 @@ obj-m := ec_8139too.o
 
 ec_8139too-objs := 8139too.o
 
-REV := $(shell svnversion $(src) 2>/dev/null || echo "unknown")
+REV := $(shell if test -s $(src)/../svnrevision; then \
+		cat $(src)/../svnrevision; \
+	else \
+		svnversion $(src) 2>/dev/null || echo "unknown"; \
+	fi)
 
 EXTRA_CFLAGS = -DEC_REV=$(REV) -DEC_USER=$(USER)
 
diff --git a/master/Kbuild b/master/Kbuild
index 51d18a8ffa934319c189ce49a25b508dbcaeba8d..f6c6144bc511f2fe00c2d8cab59993029b3526b1 100644
--- a/master/Kbuild
+++ b/master/Kbuild
@@ -40,7 +40,11 @@ obj-m := ec_master.o
 ec_master-objs := module.o master.o device.o slave.o datagram.o \
 		domain.o mailbox.o ethernet.o debug.o fsm.o xmldev.o
 
-REV := $(shell svnversion $(src) 2>/dev/null || echo "unknown")
+REV := $(shell if test -s $(src)/../svnrevision; then \
+		cat $(src)/../svnrevision; \
+	else \
+		svnversion $(src) 2>/dev/null || echo "unknown"; \
+	fi)
 
 EXTRA_CFLAGS := -DSVNREV=$(REV) -DUSER=$(USER)