diff --git a/ChangeLog b/ChangeLog
index 23d2d8c8d893d4e3326214e4f83f517c9490959a..ad4846629a8da82f29fc5d05dbbdc37a208d0e63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,9 @@ Changes in version 0.2.1.14-??? - 2009-03-??
       <hostname>:<port>, actually use the specified port rather than
       defaulting to 9050. Bugfix on 0.2.1.6-alpha.
     - Make directory usage recording work again. Bugfix on 0.2.1.6-alpha.
+    - When starting with a cache over a few days old, do not leak
+      memory for the obsolete router descriptors in it.  Bugfix on
+      0.2.0.33.
 
 
 Changes in version 0.2.1.13-alpha - 2009-03-09
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index a606d57e26c88ed5639b68978507c4fa83b5d5c3..947e9089818b46e7ee9b918be42049b9dfacf284 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -3075,6 +3075,7 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
   if (!in_consensus && from_cache &&
       router->cache_info.published_on < time(NULL) - OLD_ROUTER_DESC_MAX_AGE) {
     *msg = "Router descriptor was really old.";
+    routerinfo_free(router);
     return ROUTER_WAS_NOT_NEW;
   }