diff --git a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs
index 42e6510683..74ba0a5668 100644
--- a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs
+++ b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs
@@ -232,7 +232,26 @@ namespace OpenSim.Framework.Communications.Cache
///
public Dictionary RequestSelfAndDescendentFolders()
{
- return libraryFolders;
+ Dictionary fs = new Dictionary();
+ fs.Add(ID, this);
+ List fis = TraverseFolder(this);
+ foreach (InventoryFolderImpl f in fis)
+ {
+ fs.Add(f.ID, f);
+ }
+ //return libraryFolders;
+ return fs;
+ }
+
+ private List TraverseFolder(InventoryFolderImpl node)
+ {
+ List folders = node.RequestListOfFolderImpls();
+ List subs = new List();
+ foreach (InventoryFolderImpl f in folders)
+ subs.AddRange(TraverseFolder(f));
+
+ folders.AddRange(subs);
+ return folders;
}
}
}