diff --git a/.gitignore b/.gitignore
index 9dcf3a4fe6712df8d66e43e5409d5e67a6b53838..b7bb31a18e25c7302a1dc1775e97c00b5bac3c40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -80,6 +80,7 @@
 
 # /debian/
 /debian/files
+/debian/micro-revision.i
 /debian/patched
 /debian/tor
 /debian/tor.postinst.debhelper
diff --git a/debian/changelog b/debian/changelog
index 6673fe01b090a851b5b8610b3421d9e6d3815d50..63fdec103f1ac4a62891cbd1e04565e324170374 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,25 @@
+tor (0.2.2.2-alpha-1) experimental; urgency=low
+
+  * New upstream version.
+  * The files src/common/common_sha1.i src/or/or_sha1.i get changed
+    during the build - they contain the checksums of the individual
+    files that end up in the binary.  Of couse changes only end up
+    in the debian diff.gz after building a second time in the same
+    directory.  So, remove those files in clean to get both a cleaner
+    diff.gz and idempotent builds.
+  * If we have a debian/micro-revision.i, replace the one in src/or
+    with our copy so that this will be the revision that ends up in
+    the binary.  This is an informational only version string, but
+    it'd be kinda nice if it was (more) accurate nonetheless.
+    .
+    Of course this won't help if people manually patch around but
+    it's still preferable to claiming we are exactly upstream's source.
+    .
+    If we are building directly out of a git tree, update
+    debian/micro-revision.i in the clean target.
+
+ -- Peter Palfrader <weasel@debian.org>  Mon, 21 Sep 2009 14:51:20 +0200
+
 tor (0.2.2.1-alpha-1) experimental; urgency=low
 
   * New upstream version.
diff --git a/debian/rules b/debian/rules
index f5aaa95545885741b6bad3ae7a8c1254a86f521a..0de4103742c1cba3d7e6c7e0f63eb07edfe4ca2b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -82,6 +82,7 @@ build: build-stamp
 
 build-stamp:  config.status
 	dh_testdir
+	! [ debian/micro-revision.i ] || cp debian/micro-revision.i src/or/micro-revision.i
 
 	$(MAKE)
 	@echo
@@ -129,9 +130,16 @@ clean: unpatch
 	dh_testdir
 	dh_testroot
 	rm -f build-stamp
+	rm -f src/common/common_sha1.i src/or/or_sha1.i
+	rm -f src/or/micro-revision.i
 
 	[ ! -f Makefile ] || $(MAKE) distclean
 
+	# Normally the .deb wouldn't ship with a ../.git
+	if [ -d .git ] && which git >/dev/null; then \
+		echo "\"`git rev-parse --short=16 HEAD`\"" > "debian/micro-revision.i" ; \
+	fi
+
 	dh_clean
 
 install: build