diff --git a/contrib/svnlog2ul/getlastcommit.xslt b/contrib/svnlog2ul/getlastcommit.xslt
new file mode 100644
index 0000000000..ec37f19e10
--- /dev/null
+++ b/contrib/svnlog2ul/getlastcommit.xslt
@@ -0,0 +1,25 @@
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/contrib/svnlog2ul/log2ul.xslt b/contrib/svnlog2ul/log2ul.xslt
new file mode 100644
index 0000000000..3e35f3ffbc
--- /dev/null
+++ b/contrib/svnlog2ul/log2ul.xslt
@@ -0,0 +1,35 @@
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/contrib/svnlog2ul/svnlog2ul.sh b/contrib/svnlog2ul/svnlog2ul.sh
new file mode 100755
index 0000000000..da19e3304e
--- /dev/null
+++ b/contrib/svnlog2ul/svnlog2ul.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+#
+# svnlog2ul.sh
+#
+# This script will extract all the svn commit messages
+# from the repository between two releases.
+# The result will be printed on standard out as a
+# html unordered list ("bulleted list").
+#
+# Parameters:
+#
+# : the svn tag for the release to start
+# the commit message search
+# : the svn tag for the release to end
+# the commit message search
+#
+# The search will return all commit messages between
+# and
+#
+# Example:
+#
+# svnlog2ul.sh 2.3.7 2.3.8
+
+oldrelease=$1
+newrelease=$2
+
+oldrev=$(svn info --xml http://svn.gnucash.org/repo/gnucash/tags/$oldrelease | xsltproc getlastcommit.xslt -)
+newrev=$(svn info --xml http://svn.gnucash.org/repo/gnucash/tags/$newrelease | xsltproc getlastcommit.xslt -)
+
+svn log -r$newrev:$oldrev --xml http://svn.gnucash.org/repo/gnucash/tags/$newrelease | xsltproc log2ul.xslt -
\ No newline at end of file