Index: glibc-2.11.3/elf/dl-close.c
===================================================================
--- glibc-2.11.3.orig/elf/dl-close.c	2011-05-27 15:08:23.000000000 +0200
+++ glibc-2.11.3/elf/dl-close.c	2011-07-13 19:28:52.000000000 +0200
@@ -127,7 +127,13 @@ _dl_close_worker (struct link_map *map)
 	    {
 	      struct link_map **oldp = map->l_initfini;
 	      map->l_initfini = map->l_orig_initfini;
-	      _dl_scope_free (oldp);
+	      /* We can't remove the l_initfini memory because
+	         it's shared with l_searchlist.r_list.  We don't clear
+		 the latter so when we dlopen this object again that
+		 entry would point to stale memory.  And we don't want
+		 to recompute it as it would involve a new call to
+		 map_object_deps.
+	      _dl_scope_free (oldp); */
 	    }
 	}