diff --git a/AUTHORS b/AUTHORS
index 8c1d1c8430c6c27102613a72bd210e53a68cde0c..cec88192a1be11c0271de4ddc74f5bb19844c979 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -21,7 +21,7 @@ garcondumonde@riseup.net
 Martin Krafft madduck@debian.org -- admingroup patch
 Anarcat -- lotsa patches
 Jamie McClelland -- cstream patches
-ale -- ldap cleanup
+ale -- ldap cleanup, rdiff support for reading include/exclude from files
 Sami Haahtinen <ressu@ressukka.net>
 Matthew Palmer -- mysql enhancements
 romain.tartiere@healthgrid.org -- ldap fixes
diff --git a/ChangeLog b/ChangeLog
index 7eb37d6ae7775c04214070f0e201fa13c9a24f68..792841e9321864f04da9d680ffe9b8f5838dc771 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+version 0.9.9 -- UNRELEASED
+    handler changes
+	rdiff:
+	 . Support reading include/exclude patterns from files using the
+	   "include @/etc/backup_includes" syntax (Closes Roundup bug
+	   #2370). Thanks to ale for the patch.
+
 version 0.9.8 -- September 12, 2010
     backupninja changes
 	 . Added GZIP_OPTS option, defaulting to --rsyncable, so that this
diff --git a/handlers/rdiff.in b/handlers/rdiff.in
index 60386fac09987446c74d065c8de2cb5fec3053d4..e391eddf0bd1717d184693568f1b96bad6be2910 100644
--- a/handlers/rdiff.in
+++ b/handlers/rdiff.in
@@ -219,7 +219,10 @@ SAVEIFS=$IFS
 IFS=$(echo -en "\n\b")
 for i in $exclude; do
    str="${i//__star__/*}"
-   execstr="${execstr}--exclude '$str' "
+   case "$str" in
+      @*) execstr="${execstr}--exclude-globbing-filelist '${str#@}' " ;;
+      *) execstr="${execstr}--exclude '$str' " ;;
+   esac
 done
 IFS=$SAVEIFS
 # includes
@@ -228,7 +231,10 @@ IFS=$(echo -en "\n\b")
 for i in $include; do
    [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'"
    str="${i//__star__/*}"
-   execstr="${execstr}--include '$str' "
+   case "$str" in
+   @*) execstr="${execstr}--include-globbing-filelist '${str#@}' " ;;
+   *) execstr="${execstr}--include '$str' " ;;
+   esac
 done
 IFS=$SAVEIFS