diff --git a/Makefile b/Makefile
index 4b2fbbd..708c077 100644
--- a/Makefile
+++ b/Makefile
@@ -28,6 +28,12 @@
 
 all: pciutils dep $(PROGRAM)
 
+# Set the flashrom version string from the highest revision number
+# of the checked out flashrom files.
+SVNDEF := -D'FLASHROM_VERSION="$(shell svnversion -cn . \
+          | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/")"'
+CFLAGS += $(SVNDEF)
+
 $(PROGRAM): $(OBJS)
 	$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
 	$(STRIP) $(STRIP_ARGS) $(PROGRAM)
diff --git a/flashrom.8 b/flashrom.8
index 007cd9e..3251738 100644
--- a/flashrom.8
+++ b/flashrom.8
@@ -2,7 +2,7 @@
 .SH NAME
 flashrom \- a universal BIOS/ROM/flash programming utility
 .SH SYNOPSIS
-.B flashrom \fR[\fB\-rwvEVfh\fR] [\fB\-c\fR chipname] [\fB\-s\fR exclude_start] [\fB\-e\fR exclude_end]
+.B flashrom \fR[\fB\-rwvEVfhR\fR] [\fB\-c\fR chipname] [\fB\-s\fR exclude_start] [\fB\-e\fR exclude_end]
          [\fB-m\fR vendor:part] [\fB-l\fR file.layout] [\fB-i\fR image_name] [file]
 .SH DESCRIPTION
 .B flashrom
@@ -63,9 +63,9 @@
 .TP
 .B "\-h, \-\-help"
 Show a help text and exit.
-.\".TP
-.\".B "\-\-version"
-.\"Show version information and exit.
+.TP
+.B "\-R, \-\-version"
+Show version information and exit.
 .SH BUGS
 Please report any bugs at
 .BR http://tracker.coreboot.org/trac/coreboot/newticket ","
diff --git a/flashrom.c b/flashrom.c
index 9fde57d..5446fc5 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -191,7 +191,7 @@
 
 void usage(const char *name)
 {
-	printf("usage: %s [-rwvEVfh] [-c chipname] [-s exclude_start]\n", name);
+	printf("usage: %s [-rwvEVfhR] [-c chipname] [-s exclude_start]\n", name);
 	printf("       [-e exclude_end] [-m vendor:part] [-l file.layout] [-i imagename] [file]\n");
 	printf
 	    ("   -r | --read:                    read flash and save into file\n"
@@ -206,11 +206,17 @@
 	     "   -f | --force:                   force write without checking image\n"
 	     "   -l | --layout <file.layout>:    read rom layout from file\n"
 	     "   -i | --image <name>:            only flash image name from flash layout\n"
+	     "   -R | --version:                 print the version (release)\n"
             "\n" " If no file is specified, then all that happens"
 	     " is that flash info is dumped.\n\n");
 	exit(1);
 }
 
+void print_version(void)
+{
+	printf("flashrom r%s\n", FLASHROM_VERSION);
+}
+
 int main(int argc, char *argv[])
 {
 	uint8_t *buf;
@@ -236,6 +242,7 @@
 		{"layout", 1, 0, 'l'},
 		{"image", 1, 0, 'i'},
 		{"help", 0, 0, 'h'},
+		{"version", 0, 0, 'R'},
 		{0, 0, 0, 0}
 	};
 
@@ -253,7 +260,7 @@
 	}
 
 	setbuf(stdout, NULL);
-	while ((opt = getopt_long(argc, argv, "rwvVEfc:s:e:m:l:i:h",
+	while ((opt = getopt_long(argc, argv, "rRwvVEfc:s:e:m:l:i:h",
 				  long_options, &option_index)) != EOF) {
 		switch (opt) {
 		case 'r':
@@ -306,6 +313,10 @@
 			tempstr = strdup(optarg);
 			find_romentry(tempstr);
 			break;
+		case 'R':
+			print_version();
+			exit(0);
+			break;
 		case 'h':
 		default:
 			usage(argv[0]);
