diff --git a/Makefile.am b/Makefile.am
index dc3cc95f68c5a419ff1d4085b5a5a67d86fc43d5..363fabaa3edc2a370e847f570dcff8387647c717 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -27,10 +27,10 @@ dist_pkginc_lib_HEADERS = \
 nodist_pkginc_lib_HEADERS = \
 	pigeonhole-config.h
 
-if MAINTAINER_MODE
-ChangeLog: .git/index
-	git log > ChangeLog
-endif
+ChangeLog:
+	git log --name-status \
+		--pretty="format:%ai %aN <%aE> (%h)%n%n%w(80,4,4)%s%n%n%b" > ChangeLog \
+			|| rm -f ChangeLog
 
 dist_aclocal_DATA = dovecot-pigeonhole.m4
 
diff --git a/autogen.sh b/autogen.sh
index 3cc30444dfb2138c02237aa48d5f53cfb5ffa35a..f551da3c91f21897de916d9a77e86f703c058f3c 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -17,3 +17,5 @@ for dir in $GETTEXT_DIR /usr/share/gettext; do
 done
 
 autoreconf -i
+
+rm -f ChangeLog