Index: trac/versioncontrol/web_ui/browser.py
===================================================================
--- trac/versioncontrol/web_ui/browser.py	(revision 6716)
+++ trac/versioncontrol/web_ui/browser.py	(working copy)
@@ -450,8 +450,10 @@
         patterns = self.downloadable_paths
         if node.path and patterns and \
                filter(None, [fnmatchcase(node.path, p) for p in patterns]):
-            zip_href = req.href.changeset(rev or repos.youngest_rev, node.path,
-                                          old=rev, old_path='/', format='zip')
+            path_, latest_rev, chg_ = node.get_history(limit=1).next()
+            if rev is None or rev > latest_rev:
+                rev = latest_rev
+            zip_href = req.href.changeset(rev, node.path, old=rev, old_path='/', format='zip')
             add_link(req, 'alternate', zip_href, _('Zip Archive'),
                      'application/zip', 'zip')
 

