diff --git a/ChangeLog b/ChangeLog
index f09d1d45863d61c3c72dd64ddecd388d90b96ed2..db140ba8efe49c16542af6fb6f67d744e5139a7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,9 @@ version 0.9.8 -- UNRELEASED
 	   0.6.01 or newer, that depends on local caching (Closes: #572721)
 	 . dup: ignore anything but digits and "." when comparing versions
 	   (Closes: #578987)
+	 . Put archive directory (cache) into /var/backups/duplicity rather
+	   than the default /root/.cache/duplicity, unless the user
+	   has specified it (Closes: 580213)
 
 version 0.9.7 -- January 27, 2010
     backupninja changes
diff --git a/handlers/dup.in b/handlers/dup.in
index 16b5af2ab463f42bb191998b0d595c76b740f514..b881b0afadbbb8dea34a7c14f4d7f005eb667f87 100644
--- a/handlers/dup.in
+++ b/handlers/dup.in
@@ -193,6 +193,15 @@ if [ -n "$tmpdir" ]; then
    precmd="${precmd}TMPDIR=$tmpdir "
 fi
 
+### Archive directory
+# duplicity >= 0.6.01 enables the archive_dir by default, let's put it into /var/backups
+# unless the user has specified it.
+if [ "$duplicity_major" -ge 0 -a "$duplicity_minor" -ge 6 -a "$duplicity_sub" -ge 1 ]; then
+   if echo "${options}" | grep -qv -- "--archive-dir" ; then
+      execstr_options="${execstr_options} --archive-dir /var/backups/duplicity"
+   fi
+fi
+
 ### Cleanup old backup sets (or not)
 if [ "$keep" != "yes" ]; then
    if [ "`echo $keep | tr -d 0-9`" == "" ]; then